スマートホームとビデオのスキルコードでアクセストークンを検証して使用する
ユーザーがスマートホームとビデオのスキルを有効にしてAlexaアカウントをデバイス制御クラウドにリンクしたら、スキルに送信されるリクエストにはユーザーのアクセストークン(token)が含まれるようになります。スキルのサービスに、トークンを検証してリソースサーバーにあるユーザーのデバイスに関する情報へのアクセスに使用する処理を追加します。
ディレクティブからアクセストークンを取得する
スキルがAlexaからディレクティブを受信するとき、ディレクティブにはscopeを含むendpointセクションが含まれます。スコープには、システムでのユーザー認証に使用するベアラートークンが含まれます。
以下は、ベアラートークンを含むエンドポイントの例です。
"endpoint": {
    "scope": {
        "type": "BearerToken",
        "token": "access-token-from-skill"
    },
    "endpointId": "appliance-001",
    "cookie": {}
},
endpoint.scope.tokenからトークンを取得します。
トークンが有効なことを確認する
tokenを取得したら、このトークンがリソースサーバーのユーザーを識別することを確認します。トークンが無効とみなされる理由はさまざまです。以下はその例です。
- 
    
ユーザーがサービスでアカウントを削除またはキャンセルした場合。たとえば、Alexaユーザーがマイライトでアカウントリンクをセットアップしてから、マイライトアカウントをキャンセルした場合などです。この時点で、Alexaサービスが保存したトークンは、存在しないユーザーを識別することになります。
 - 
    
トークンの有効期限が切れ、Alexaサービスが新しいトークンを取得できなかった場合。これは、認可サーバーが更新トークンを提供しない場合のAuthorization code grantで発生する可能性があります。
 
トークンが有効な場合、リクエストを正常に処理します。トークンを使い、必要に応じてリソースサーバーからデータにアクセスできます。マイライトの例では、スキルはデバイス制御クラウドにアクセスし、ユーザーがリクエストしたディレクティブに基づいて適切なアクションを実行します。たとえば、ユーザーがTurnOnディレクティブを呼び出す場合、スキルはデバイス制御クラウドに接続して照明をオンにします。
トークンが無効または期限切れの場合にユーザーに応答する
アクセストークンが無効の場合、typeに以下のいずれかの値を設定してErrorResponseを返します。
EXPIRED_AUTHORIZATION_CREDENTIAL(期限切れのトークンの場合)INVALID_AUTHORIZATION_CREDENTIAL(無効なトークンの場合)
EXPIRED_AUTHORIZATION_CREDENTIALまたはINVALID_AUTHORIZATION_CREDENTIALエラーコードを送信しないでください。これらのエラーコードを送信すると、ユーザーのアカウントリンクトークンが削除され、Alexa側からユーザーのアカウントとサービスのリンクが解除されます。この場合、ユーザーにとって唯一の手段は、アカウントを再リンクすることです。関連トピック
- クイックリファレンス: Alexaスキルにアカウントリンクを追加する
 - Alexaスキルにアカウントリンクを追加する
 - Alexaスキルにおけるアカウントリンクの概念
 - OAuth 2.0認可フレームワーク(RFC 6749)
 - OAuth.com
 
最終更新日: 2025 年 09 月 19 日