スマートホームなどのドメインのアカウントリンク
スマートホームとビデオのすべてのスキルでは、ユーザーのIDをデバイス制御クラウドに接続する必要があります。この機能を「アカウントリンク」と呼びます。Alexaユーザーとデバイス制御クラウド間でリンクを作成することが目的です。
ユーザーのアカウントをスマートホームスキルに接続する方法
スマートホームスキルとビデオスキルでは、スキルの詳細ページにアカウントリンクが必要であることを明記する必要があります。
- Alexaアプリでユーザーが有効にするをクリックすると、アカウントリンクプロセスが開始します。
- アプリに、デバイス制御クラウドのログインページが表示されます。
- ユーザーはログインページで認証情報を入力し、そのサービスを使用して認証します。
- ユーザーはAlexaアプリの「成功」ページにリダイレクトされます。
- ユーザーはデバイスを探すオプションをクリックします。デバイスが検出されると、スキルが使用できるようになります。
アカウントリンクが正常に完了した場合、Alexaはデバイス制御クラウドでユーザーを識別するアクセストークンを格納するようになります。以後このトークンはスキルに対するすべてのリクエストに含まれ、ユーザーがスキルを呼び出したときに、スキルは他のシステムのユーザー情報にアクセスできます。
前提条件
デバイス制御クラウドは、有効なOAuth 2.0を実装し、Authorization code grantフロー種別をサポートする必要があります。
OAuth 2.0を実装していない場合、OAuth 2.0プロバイダーとしてLogin with Amazon(LWA)を使用するか、Amazon認定の認証局によって署名された証明書を持つプロバイダーを使用することができます。Amazon認定の認証局には、こちらの証明書リストが含まれます。このリストに記載されていても、https://letsencrypt.org/
を使用することはできませんのでご注意ください。
また、システムで提供されるアクセストークンには6分以上の有効期限を設定する必要があります。つまり、アクセストークン応答のexpires_in
パラメーターを360以上に設定する必要があります。
アカウントリンクの設定
開発者コンソールのビルド > アカウントリンクセクションでスキルにアカウントリンクを設定します。
アカウントリンクの設定フィールド、アクセストークン、Authorization code grantフロー全体の詳細については、Authorization Code Grantを設定するを参照してください。
アカウントリンク処理を追加してスキルコードを更新する
スキルに送信される各ディレクティブには、ユーザーを識別するアクセストークンが含まれます。Lambda関数はトークンを検証してから、そのトークンをユーザーのデバイスに関する情報にアクセスするために使用します。スマートホームとビデオのスキルコードでアクセストークンを検証して使用するを参照してください。
また、スキルのAlexaイベントを送る権限を有効にしている場合、Lambda関数は対応する言語のエンドポイントからのAcceptGrant
ディレクティブを処理する必要があります。スキルがこのディレクティブを処理しないと、ユーザーがスキルを有効にしようとするとアカウントリンクが失敗します。アクセス権限を設定してAlexaへのユーザー認証を実現するを参照してください。
関連トピック
OAuthのリソース:
その他のリソース:
- Alexaスキルにアカウントリンクを追加する10のヒント(英語)
- 応用編: Alexaスキルにアカウントリンクを追加するベストプラクティス(英語)
- Alexaアカウントリンク: AlexaスキルをLogin with Amazonにシームレスにリンクする5つの手順(英語)
- Amazon APIゲートウェイをプロキシーとして設定してアカウントリンクをデバッグする方法(英語)
- アカウントリンクのデバッグに関するKB記事(英語)