アカウントのリンク

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

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

Actions on Google のアカウント リンクでは、Google の安全な認証システムである Google ログインを使用し、オプションで業界標準の承認用プロトコルである OAuth 2.0 を使用します。

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

アシスタントが Google アカウントをユーザーと一致させると、アカウントのリンクを使用してその Google アカウントにアクセスする権限がユーザーにリクエストされます。アカウント データは次のことに使用できます。

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

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

Google ログイン

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

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

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

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

詳しくは、Google ログインのコンセプト ガイド実装ガイドをご覧ください。

OAuth ベースの Google ログイン「効率化」リンク

図 2: 合理化されたリンクは、マルチプラットフォームのアクションに推奨されるソリューションです。

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

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

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

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

詳しくは、OAuth ベースの Google ログイン「効率化」リンクのコンセプト ガイド実装ガイドをご覧ください。

OAuth リンク

OAuth リンクタイプでは、業界標準の OAuth 2.0 フローの 2 つのフロー(暗黙的および認可コードフロー)がサポートされています。

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

詳しくは、OAuth リンクのコンセプト ガイド実装ガイドをご覧ください。

アクションにアカウントのリンクを実装する方法の詳細については、次のリソースをご覧ください。