概要

すべてのスマートホーム アクションには、ユーザーを認証するための仕組みを組み込む必要があります。

認証を使用すると、ユーザーの Google アカウントと認証システム内のユーザー アカウントを関連付けることができます。これにより、フルフィルメントでスマートホーム インテントを受け取ったときにユーザーを識別できます。Google スマートホームは、認証コード フローを使用した OAuth のみに対応します。

OAuth 2.0 を実装すると、OAuth ベースのアプリ切り替えを設定できるようになります。アプリ切り替えを使うと、デベロッパーの認証システムに登録されているユーザーのアカウントを、そのユーザーの Google アカウントに簡単にリンクできます。

OAuth

スマートホームでは、認証コードフローを使用した OAuth を使用しなければなりません。そのため、認証エンドポイントとトークン交換エンドポイントの 2 つのエンドポイントを用意する必要があります。

ユーザーを認証すると、スマートホーム インテントがフルフィルメントに送信されたときに、ユーザーのサードパーティ OAuth 2.0 アクセス トークンが Authorization ヘッダーで送信されます。すべてのユーザーがアカウント リンクを実行する必要があります。これは、デバイス情報が、アカウント リンクを必要とする action.devices.SYNC インテントとともにアシスタントに送信されるためです。

スマートホーム アクションは、同じユーザー アカウントに接続している複数の Google ユーザーをサポートするように設計されています(ユーザーが家族の他のユーザーにアクセスを許可する場合など)。サービスが複数のユーザー接続をサポートできない場合は、アカウント リンク時にエラーが発生します。

OAuth 2.0 サーバーの設定方法については、OAuth 2.0 サーバーを実装するをご覧ください。

OAuth ベースのアプリ切り替え

OAuthベースのAppFlip Linking(App Flip)を使用すると、ユーザーは認証システムのアカウントをGoogleアカウントに簡単かつ迅速にリンクできます。ユーザーがアカウントリンクプロセスを開始するときにアプリがユーザーの電話にインストールされている場合、アプリはシームレスにアプリに切り替えられ、ユーザー認証を取得します。

このアプローチでは、ユーザーが認証のためにユーザー名とパスワードを再入力する必要がないため、リンクプロセスがより速く簡単になります。代わりに、AppFlipはアプリのユーザーアカウントのクレデンシャルを利用します。ユーザーがGoogleアカウントをアプリにリンクすると、ユーザーはあなたが開発した統合を利用できます。

iOSアプリとAndroidアプリの両方にAppFlipを設定できます。

この図は、ユーザーが自分のGoogleアカウントを認証システムにリンクするための手順を示しています。最初のスクリーンショットは、ユーザーのGoogleアカウントがアプリにリンクされている場合にユーザーがアプリを選択する方法を示しています。 2番目のスクリーンショットは、Googleアカウントをアプリにリンクするための確認を示しています。 3番目のスクリーンショットは、Googleアプリで正常にリンクされたユーザーアカウントを示しています。
1.AppFlipを使用したユーザーの電話でのアカウントのリンク。

要件

App Flipを実装するには、次の要件を満たす必要があります。

  • AndroidまたはiOSアプリが必要です。
  • OAuth2.0認証コードフローをサポートするOAuth2.0サーバーを所有、管理、および保守する必要があります。

OAuth リンクの認証コードフローの詳細については、OAuth 2.0 サーバーを実装するをご覧ください。

アクションのアプリ切り替えを設定する手順については、OAuth ベースのアプリ切り替えをご覧ください。