音楽スキルでアクセストークンを検証して使用する
ユーザーがアカウントリンクを必要とする音楽スキルを有効にして、Alexaアカウントを認証システムとリンクしたら、Alexaからスキルに送信されるAPIリクエストにはユーザーのアクセストークン(accessToken
)が含まれるようになります。スキルコード(AWS Lambda関数)に処理を追加し、トークンを検証してから、リソースサーバー内のユーザーに関する情報へのアクセスに使用します。
リクエストからアクセストークンを取得する
Alexaがスキルに送信するAPIリクエストには、userについての情報が入ったRequestContextオブジェクトが含まれます。user
オブジェクトには、システムでのユーザー認証に使用するアクセストークンが含まれます。コード例については、音楽スキルAPIコンポーネントリファレンスのRequestContextを参照してください。
スキルコードは、payload.requestContext.user.accessToken
からトークンを取得します。
トークンが有効なことを確認する
payload.requestContext.user.accessToken
プロパティが存在する場合、このアクセストークンがリソースサーバーのユーザーを識別することを確認します。
トークンが有効な場合、リクエストを正常に処理します。トークンを使い、必要に応じてシステムからデータにアクセスできます。たとえば、ユーザーのサブスクリプションレベルを確認し、リクエストされたコンテンツを利用する資格があるかどうかを判断できます。
トークンが無効または期限切れの場合にユーザーに応答する
トークンが無効な場合、以下の理由が考えられます。
- スキルの認証システムで、ユーザーが自身のアカウントを削除した場合。たとえば、Alexaユーザーが音楽スキルとのアカウントリンクを設定した後、サービスから自身のアカウントを削除することがあります。この場合、Alexaがこのユーザーについて送信するトークンが、認証システムに存在しなくなる可能性があります。
- トークンの有効期限が切れ、Alexaサービスが新しいトークンを取得できなかった場合。これは、認可システムが更新トークンを提供しない場合に発生する可能性があります。
トークンが無効の場合、type
に以下のいずれかの値を設定してエラー応答を返します。
EXPIRED_AUTHORIZATION_CREDENTIAL
(期限切れのトークンの場合)INVALID_AUTHORIZATION_CREDENTIAL
(無効なトークンの場合)
EXPIRED_AUTHORIZATION_CREDENTIAL
またはINVALID_AUTHORIZATION_CREDENTIAL
エラーコードを送信しないでください。これらのエラーコードを送信すると、ユーザーのアカウントリンクトークンが削除され、Alexa側からユーザーのアカウントとサービスのリンクが解除されます。この場合、ユーザーにとって唯一の手段は、アカウントを再リンクすることです。関連トピック
最終更新日: 2025 年 09 月 19 日