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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

724閲覧

クライアント毎にサブドメインが別れるサービスにおいて、Google Calendar APIのリダイレクトURLの設置方法に困っております。

qaz3330

総合スコア113

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/08/23 03:54

JSで、Google Calendar APIを呼び出し、
イベントの日時をカレンダーに登録する機能を実装しました。

参照したURL(pythonですが、実装はjavascriptでやっております。)
http://dev.classmethod.jp/cloud/google-calendar-api-get-start/

「認証情報」から「OAuthクライアントID」を作成する際に、
リダイレクトURLの入力が必要なようです。
https://gyazo.com/156fd877f501c56bcb941622d4d76348

ただ、今回のWebサービスが、クライアント毎にサブドメインを分け管理するようなサービスとなっており、

リダイレクトURLがクライアント毎に違います。
(固定でwwwとかではない)

そのため、特定のクライアントのサブドメインを指定して、登録すると、上手くいくのですが、
別のクライアントの際に問題となります。

また、クライアント数も膨大なため、
それぞれのクライアント毎に、OAuthクライアントIDを作成するのは現実的ではありません。

※ gyazoの画像のページにも記載があったようにサブドメインを*で対応するといったことはできませんでした。

このような場合、どのように実装したら宜しいでしょうか?

方法としては下記になるのかなと思っております。

  1. クライアント毎に、「OAuthクライアントID」を作成してもらい、
    それをDBに保存。その情報をもとに、クライアント毎にきりかえる

  2. 別の実装方法を探る

1は、クライアントの手間が増えるのと、クライアントからの質問サポートの運用コストが発生するため可能な限りは避けたいです。

宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

Googleからのリダイレクト先は共通ドメインに一個作って、そこから改めて個別のドメインに飛ばす、というスタイルではだめなのでしょうか。

投稿2017/08/23 04:11

maisumakun

総合スコア145121

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

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

qaz3330

2017/08/23 04:13

ありがとうございます。 確かにご指摘の方法でできそうです。 ただ、開発の工数をかけずにできる方法がないかと思い、もう少し他の方の回答があるか待ってみます。
qaz3330

2017/08/23 16:23

リダイレクト先はご指摘の方法でいけそうですが、 リクエスト元と、リダイレクト先のURLは一致させなくてはいけないようで、ご指摘の方法では限界があるように見受けられます。 The JavaScript origin in the request, http://xxx.lvh.me:3000, does not match the ones authorized for the OAuth client. to update the authorized JavaScript origins.
qaz3330

2017/08/23 16:24

リクエスト元 http://xxx.lvh.me:3000www.lvh.me:3000 などの共通ドメインにすることはできず、何か良い方法はないかと探っております。
guest

0

ベストアンサー

Google API ConsoleでOAuthクライアントIDを作成する時は、「承認済みのJavaScript生成元」や「承認済みのリダイレクトURI」を一つ入力すると、次のもう1個の入力欄が表示されるので、同じクライアントIDに対して複数個のJavaScript生成元(origin)やリダイレクトURIが登録ができるようになっていると思うのですが...

投稿2017/08/23 04:48

othersight

総合スコア356

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

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

othersight

2017/08/23 04:57

「クライアント数が膨大」なので、全てのリダイレクトURIを登録するのも現実的ではないのですね。 失礼いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問