質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1815閲覧

Google apps script からあるAPIにアクセスし、認証後のリダイレクトを受け取りたい

you_19000

総合スコア31

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2018/12/09 05:43

前提・実現したいこと

どうぞ宜しくお願い致します。
以下サービス「ネクストエンジン」のAPIを利用し、
自分のサイト内のデータをGoogle apps script で取得しスプレッドシートへ書き出したいと考えております。
https://next-engine.net/

そもそもの質問で大変申し訳ありません。

上記の開発者向けマニュアルを確認していると、
以下のAPIでID情報を取得する必要があるとのことです。

https://developer.next-engine.com/api/api_v1_sign_in

具体的な流れは以下のようです。
①上記APIへアクセスし、ログイン画面が表示される。
②自分のID・PWを入れ認証する。
③予め登録したRedirect uriへ飛ばされ、uid・state情報が渡される。

この為、以下サイトのコードを参考にさせて頂き、
以下サイトのコード内エントリーポイントのURLを上記のAPIに置き換えてみました。
また、client_Idの箇所をネクストエンジンで払い出されていたIDへ置き換えました。
https://qiita.com/soundTricker/items/b4df3072088fcbd0e36d

上記の結果、認証用のURLはGASのURLにアクセスした際に表示されたのですが、
認証ボタンを押してもログイン画面が表示されませんでした。

そこで、cliend_Idをサイトのコードに戻した結果、
ログイン画面は正しく表示がされました。
しかし、認証後はネクストエンジンのサイト側でアプリが見つからないと表示されてしまいます。
(cliendIDをGASのIDで送信している為、見つからないものと認識しています。)

以下質問になるのですが、


GASで他サービスのAPIを利用する際に、
WEB画面上でID・PWを求められる場合は、上記参考にしたサイトのOauth2認証の仕組みを活用することは間違えていないでしょうか。


GASで上記の通りWEBで認証した後、ネクストエンジンのサイト側でリダイレクト処理がされ、
再度GASのURLにGETが送信されてくるのですが、これをGASで受け取る為には、doGetで受け取るであっておりますでしょうか。


上記の通りclient_IDをGASのスクリプトのIDにしなければログイン画面が表示されないのですが、
ネクストエンジンのサイト側でも同じくclient_IDを指定しなければアプリに到達が出来ません。
こういった場合、同じパラメーターが出来てしまうのですが、どのように記述するべきでしょうか。

上記教えて頂きたい次第です。
どうぞ宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2018/12/10 08:41

適切な回答がついて回答をかくほどでないのでこちらで。3.のところですが、質問者様が「gasのidにしたときだけログイン画面が表示される」はブラウザがログイン認証情報を持っているからではないでしょうか?APIを見る限りgasのidを設定するようにはみえませんでした。不便かもしれないですが一旦ログアウトした状態にしてから、当初のコードでトライしてみるとログインに遷移しませんでしょうか?
guest

回答1

0

ベストアンサー

回答がついていないようなので、簡単に...

① GASで他サービスのAPIを利用する際に、WEB画面上でID・PWを求められる場合は、上記参考にしたサイトのOauth2認証の仕組みを活用することは間違えていないでしょうか。

相手先の仕様に依存しますので、ケースバイケースで。

② GASで上記の通りWEBで認証した後、ネクストエンジンのサイト側でリダイレクト処理がされ、再度GASのURLにGETが送信されてくるのですが、これをGASで受け取る為には、doGetで受け取るであっておりますでしょうか。

Yes.

個別の値を直接参照するのであれば、e.parameter.パラメータ名 で取得できると思います。

https://script.google.com/〜〜〜?uid=xxxxxx&state=yyyyyy で、リダイレクトされるてくるのであれば、

function doGet(e) { var neUid = e.parameter.uid; var neState = e.parameter.state; 処理 }

のような感じでしょうか。
必要に応じて、デコードなどを実行してください。

Web Apps 参照

③ 上記の通りclient_IDをGASのスクリプトのIDにしなければログイン画面が表示されないのですが、ネクストエンジンのサイト側でも同じくclient_IDを指定しなければアプリに到達が出来ません。

どのようなコードか不明なのですが、それぞれのパラメーターに指定することになると思います。

投稿2018/12/10 06:13

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

you_19000

2018/12/16 09:59

ご回答大変ありがとうございます。 それぞれに詳細を記載頂きありがとうございます。 記載頂いた通り実現可否はケースバイケースだと思っておりますので、検証してみます。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問