Alexaスキルにおけるユーザーのアカウントリンク体験
Alexaスキルにおけるユーザーのアカウントリンク体験
このトピックでは、ユーザーから見た一般的なアカウントリンクエクスペリエンスと、その背後で何が起こっているかについて紹介します。例として、ユーザーが配車を依頼する「タクシー予約」という架空のカスタムスキルを使います。
アカウントリンクの概念については、Alexaスキルにおけるアカウントリンクの構成要素を参照してください。アプリ間アカウントリンクの特殊なケースについてはここでは説明しませんので、詳細はアプリ間アカウントリンクの設定を参照してください。
ユーザーがスキルにアカウントリンクが必要かどうかを確認する方法
デフォルトでは、ユーザーはアカウントリンクフローを開始せずにスキルを有効にできます。このコンフィギュレーションでは、ユーザーがスキルを簡単に有効にでき、認証が不要な機能を利用できます。たとえば、タクシー予約ではアカウントリンクをしなくても、特定の目的地までどれくらい時間がかかるかをたずねることができます。また、ユーザーがスキルを有効にする際にアカウントリンクを行うよう求めることもできます。
Alexaアプリのスキル詳細ページでは、次のようにアカウントリンクが必須か任意かを示します。
アカウントリンクのユーザーエクスペリエンス
ユーザーは、以下の3つの時点で、Alexaアプリのアカウントリンクフローを開始できます。
- スキルを有効にする際 – ユーザーはAlexaアプリのスキル詳細ページで有効にして使用するボタンを選択します。
- スキルの設定から – ユーザーは、スキルを有効にしてからAlexaアプリでスキルの設定ページを開きます。
- アカウントリンクカードから – ユーザーが認証の必要なスキル機能を使おうとし、スキルがAlexaアプリにカードを送信します。
次の例は、各ケースのユーザーフローと、セットアップしたアカウントリンクのコンポーネントとAlexaアプリの連携について示しています。
注: サービスに独自のアプリがある場合、ユーザーはAlexaアプリとそのアプリのどちらからでも、アカウントリンクフローを開始できます。アプリ間のアカウントリンクについては、
アプリ間アカウントリンクの設定を参照してください。
スキルを有効にする際
以下のフローでは、ユーザーがAlexaアプリでスキルを有効にする際にアカウントリンクを開始しています。
Alexaアプリでスキルを有効にするには、スキルの詳細ページで有効にして使用するボタンを選択します。スキルにアカウントリンクが必要な場合、ユーザーは以下の例のようなアカウントリンクフローに移動します。
|
ユーザーは、スキルの詳細ページから有効にして使用するを選択してアカウントリンクプロセスを開始します。
|
Alexaアプリはスキルの認証画面のURIを開きます。
|
|
ユーザーは表示されたタクシー予約ログインページから、タクシー予約認証情報でログインします。
|
Alexaが認証画面のURIを使ってアクセスしたタクシー予約の認可サーバーが、Alexaアプリ内にログインページを表示します。このページがユーザーのタクシー予約認証情報を受け取ります。
|
|
ユーザーは、タクシー予約の利用規約を確認し、同意します。
|
ユーザーが正常にログインしてすべての利用規約に同意したら、タクシー予約の認可サーバーは認可コードを生成してAlexaに返します。この認可コードにより、Alexaはアクセストークンをリクエストします。アクセストークンは最終的に、Alexaがユーザーのタクシー予約データにアクセスするのに必要なものです。
|
|
ユーザーがAlexaアプリに戻ると、ログイン成功のページが表示されます。
|
タクシー予約の認可サーバーはユーザーをAlexaのリダイレクト先のURLにリダイレクトし、クエリ文字列に認可コードをセットして渡します。Alexaは、タクシー予約のアクセストークンURIを開いてアクセストークンを取得します。
|
|
ユーザーが「アレクサ、タクシー予約を開いて配車を依頼して」と言います。
|
AlexaはスキルにLaunchRequest リクエストを送信し、リクエストにアクセストークンを含めます。
スキルはリクエストからアクセストークンを抽出し、アクセストークンを検証し、タクシー予約のリソースサーバーの呼び出しでアクセストークンを使用します。ユーザーデータはこのリソースサーバーに含まれます。アクセストークンの抽出と使用の方法については、GitHubのアカウントリンクサンプルスキルを参照してください。
|
スキルの設定から
以下のフローでは、ユーザーがAlexaアプリでスキルを有効にした後で、スキルの設定からアカウントリンクを開始しています。
アカウントリンクカードから
以下のフローでは、ユーザーが認証の必要な機能を使おうとしたときにスキルがAlexaアプリに送信するカードを使って、アカウントリンクを開始しています。
ユーザーが有効にしたスキルを実行し、ユーザーがまだアカウントをリンクしていないのにアカウントリンクが必要な機能を使用しようとした場合に、スキルはAlexaアプリにアカウントリンクカードを送信できます。以下は、ユーザーが音声でスキルを有効にしたときに開始するアカウントリンクフローの例です。
|
ユーザーが「アレクサ、タクシー予約を有効にして」と言います。
|
AlexaがスキルにLaunchRequest リクエストを送信します。リクエストにはアクセストークンが含まれていません。
|
|
Alexaが(スキル経由で)「タクシー予約へようこそ! 配車を依頼するには、Amazonアカウントとタクシー予約アカウントをリンクする必要があります。Alexaアプリに送った手順を確認してください。」と言います。
|
スキルはリクエストからアクセストークンを抽出しようとしますが、何もありません。スキルがAlexaに応答する際、応答には読み上げテキストとアカウントリンクカードが含まれます。
|
|
Alexaがアカウントリンクカードを表示し、ユーザーがアカウントをリンクを選択します。
|
Alexaアプリはスキルの認証画面のURIを開きます。
|
|
ユーザーは表示されたタクシー予約ログインページから、タクシー予約認証情報でログインします。
|
Alexaが認証画面のURIを使ってアクセスしたタクシー予約の認可サーバーが、Alexaアプリ内にログインページを表示します。このページがユーザーのタクシー予約認証情報を受け取ります。
|
|
ユーザーは、タクシー予約の利用規約を確認し、同意します。
|
ユーザーが正常にログインしてすべての利用規約に同意したら、タクシー予約の認可サーバーは認可コードを生成してAlexaに返します。この認可コードにより、Alexaはアクセストークンをリクエストします。アクセストークンは最終的に、Alexaがユーザーのタクシー予約データにアクセスするのに必要なものです。
|
|
ユーザーがAlexaアプリに戻ると、ログイン成功のページが表示されます。
|
タクシー予約の認可サーバーはユーザーをAlexaのリダイレクト先のURLにリダイレクトし、クエリ文字列に認可コードをセットして渡します。Alexaは、タクシー予約のアクセストークンURIを開いてアクセストークンを取得します。
|
|
ユーザーが「アレクサ、タクシー予約を開いて配車を依頼して」と言います。
|
AlexaはスキルにLaunchRequest リクエストを送信し、リクエストにアクセストークンを含めます。
スキルはリクエストからアクセストークンを抽出し、アクセストークンを検証し、タクシー予約のリソースサーバーの呼び出しでアクセストークンを使用します。ユーザーデータはこのリソースサーバーに含まれます。アクセストークンの抽出と使用の方法については、GitHubのアカウントリンクサンプルスキルを参照してください。
|
Last updated: May 25, 2022