2017-03-21 40 views
4

私は外部APIを使用してGoogleホームアプリケーションを開発中です。現在のユーザーがログインし、外部API(外部APIによって提供されるアクセス/更新トークン)とリンクする必要があります。Google +アカウントの操作Firebaseとのリンク

私のアプローチ:

  • が機能フォルダ内
  • Googleホームアプリの生活をfirebaseアプリケーションを設定します。
  • firebase.auth()を使用して自分のGoogleアカウントでログインし、次に外部API Oauthを使用して外部APIアカウントを使用するページを設定します。
  • firebaseデータベースにエントリを作成して、外部APIによって提供されるアクセス/リフレッシュトークンを各ユーザーごとに格納します。

これは私がちょっと混乱しているところです。私は、サインインページ(Googleサインイン、外部APIサインイン)をセットアップし、firebaseデータベース(/ users/{google_uid})を保存しました。

これはデータベースになっているので、Googleホームアプリで認証を設定するにはどうすればよいですか?

ありがとうございました!

+0

あなたはapi.aiを使用していますか? – adolfosrs

+1

はい私はapi.aiを使用しています – Danetag

答えて

3

まず、console.developers.google.comにプロジェクトがあり、プロジェクトでGoogleアクションAPIを有効にする必要があります。その後、次の手順を実行する必要があります。

  1. ホワイトリストは、あなたのAPIでURIをリダイレクトする次:あなたのAPI.AIプロジェクトで https://oauth-redirect.googleusercontent.com/r/

  2. は、統合に行くと グーグルカードでの操作を可能にします。 Googleでアクションの設定で

  3. 、プロジェクトのIDを配置し、 歓迎目的のために必要なでログインを選択し、任意の他の 意思ユーザーが資格情報を必要とします。以下は enter image description here

  4. 、あなたはクライアントID、クライアント 秘密、承認のURLとトークンURLのような、のOAuth2のフィールドがあります。 APIのOAuth2 情報を入力してAuthorizeアプリケーションを実行してください。 enter image description here

アプリケーションプレビューすることができます、あなたが承認した後に、それはあなたのGoogleホームデバイスで利用できるようになります、そしてあなたが最初に起動したときに、それはあなたのGoogleホームアプリでカードを提供しますリンクを行う。あなたがデバイスを持っていないなら、あなたの行動をテストできるWeb Simulatorがあります。

詳細については、actions on googleのマニュアルを参照してください。

+1

FirebaseプロジェクトのClientID/ClientSecret/TokenURLに関する情報はどこにありますか?ありがとう! –

+0

こんにちは@NickMoskalenko、あなたはGoogleのアクションfirebaseの認証を設定するのに成功しましたか? – adolfosrs

+0

@NickMoskalenko ClientIDとClientSecretは、console.developers.google.comから入手する必要があります。あなたのfirebaseプロジェクトがそこにリストされ、資格証明書に行き、OAuth2資格を作成すると、IDと秘密が作成されます。そのサービスを必要とするトークンURLについては、FirebaseUIライブラリを使用することをお勧めします。 –

2

GoogleとGoogleホームのアクションでアカウントをリンクする方法には、いくつかの問題があります。Googleホームは、Googleアカウントに直接アクセスするのではなく、ウェブブラウザのように動作し、アカウントのリンク処理では、ホームの「ブラウザ」にOAu​​th2トークンを発行して今後使用する必要があります。

外部APIを制御でき、OAuth2トークン(それと同じように聞こえる)を発行する場合は、Firebase部分を完全にスキップできます。この外部サービスのOAuth2情報(クライアントIDとシークレット、ログインページのURL、トークン交換ページなど)を使用してAPI.AIを設定するだけです。この場合、ウェブフックはOAUth2を提供するよう呼び出されますあなたが呼び出しているときに外部APIに渡すべきアクセストークン。詳細は、Googleの対応文書Account Linkingのドキュメントに記載されています。

あなたはは、このAPIを制御できませない場合は、取得するために使用することができる認証トークン(あなたが作成したものかのもののいずれかを配ることができますのOAuth2 サーバーの基本的な実装を提供する必要があるかもしれません外部APIからの認証トークン)。ウェブフックはこれらのOAuthトークンで呼び出されます。トークンを使用して外部APIへのアクセスに使用するトークンを見つける必要があります。これを実装するオプションがあります。これらのオプションについては、Googleの操作のドキュメントのOAuth2 Account Linking Overviewで説明しています。

+0

一般に、仲介なしでGoogleアシスタントからFirebaseユーザーを直接認証する方法は現在ありません。 – Estel

+0

あなたが仲介を提供せずにGoogle Assistantからすべてのユーザーを直接認証する方法はありません。 – Prisoner

+0

Firebaseが何らかの形で独自の仲介者として行動することができればと思っていますが、私は考えなかったと思います! – Estel

関連する問題