アカウント リンク

図 1: アカウント リンクを使用すると、たとえばユーザーが料理を注文するアクションを使用したときに、モバイルアプリやウェブアプリに設定されているユーザーの名前やアクセス設定に基づいて既存のユーザーであることを認識し、歓迎することができます。

アカウント リンクを使用すると、ユーザーの Google アカウントと認証システムのユーザー アカウントを結び付けることができます。これにより、ユーザーのためによりリッチなエクスペリエンスを作り出すことができます。たとえば、ユーザーの食べ物や音楽の好み、取引の履歴、その他の情報を保存しておき、パーソナライズしたエクスペリエンスを提供することが可能です。

アクションが、ウェブや Android などの異なるプラットフォーム上の既存アプリのコンパニオンである場合は、アカウント リンクを使用することで、ユーザーの好みやカスタマイズ設定をすべてのプラットフォームから安全に利用でき、プラットフォームが違っても一貫したエクスペリエンスを実現できます。

Actions on Google のアカウント リンクでは、Google の安全な認証システムである Google ログインを使用します。また、必要に応じて、業界標準の認証プロトコルである OAuth 2.0 も使用できます。

アカウント リンクのフローを理解する

アシスタントによって Google アカウントと特定のユーザーとの一致が確認されると、アカウント リンクを使用して、そのユーザーに Google アカウントへのアクセス許可を求めることができます。アカウント データは次のことに使用できます。

  • ユーザーが以前にアクションまたは他のプラットフォーム上のアプリを使用したことがある場合、認証システムでそのアカウントに一致するユーザーを見つける。
  • 新しいユーザーの場合、認証システムに新規アカウントを作成する。

Actions on Google では、以下の 3 通りのリンクタイプが用意されています。

Google ログイン

図 2: Google ログインのみのアカウント リンクタイプは、アシスタントのみをターゲットとするアクションに推奨されるソリューションです。

アシスタント用 Google ログインを使用すると、アクションはユーザーとの会話中にユーザーの名前、メールアドレス、プロフィール写真といったユーザーの Google プロフィールへのアクセスをリクエストできます。ユーザーは音声でフロー全体を完了できるため、ログインのために余計な手間はかかりません。

次のいずれかに該当する場合は、このタイプのアカウント リンクをおすすめします。

  • 既存の認証システムがない。
  • 既存の認証システムがあり、@gmail.com アドレスを使用して既存のアプリに登録したユーザーのみとリンクしたい。

詳細については、Google ログイン デベロッパー ガイドをご覧ください。

OAuth と Google ログイン

図 3: Google ログインと OAuth 2 のアカウント リンクタイプは、マルチプラットフォーム アクションに推奨されるソリューションです。

OAuth と Google ログインのリンクタイプは、OAuth ベースのアカウント リンクの上層に Google ログインを追加します。これにより、Google ユーザーには音声によるシームレスなリンクを提供し、Google 以外の ID でサービスに登録したユーザーにはアカウント リンクを有効にします。

このフローを使用するには、サポートされているいずれかの OAuth 2 標準フローを拡張して Google 独自のプロトコル拡張のサポートを追加する必要があります。これにより、次のことができます。

  • Google プロフィール情報を使用してアカウントをシームレスにリンクする。
  • Google プロフィール情報を使用して新しいアカウントをシームレスに作成する(オプション)。

このタイプのアカウント リンクは、既存の認証システムがあり、@gmail.com 以外のアドレスを使用したユーザーにもリンクできるようにする場合に推奨されます。

詳細については、OAuth と Google ログインのデベロッパー ガイドをご覧ください。

OAuth

OAuth アカウント リンクタイプは、インプリシット フローと認可コードフローの 2 通りの業界標準 OAuth 2.0 フローをサポートします。

このフローを使用すると、ユーザーとのやり取りを音声から画面に移行しなければならないため、おすすめできません。OAuth 2 サーバーの既存の実装があり、トークン交換エンドポイントを拡張して Google のプロトコル拡張(ID トークンからの自動的なリンクやアカウントの作成)を組み込むことができない場合は、このフローの使用を検討できます。

詳細については、OAuth デベロッパー ガイドをご覧ください。