スキルにメッセージを送信するようアプリケーションやサービスを設定する


スキルにメッセージを送信するようアプリケーションやサービスを設定する

セッション外のリクエストには、スキルを有効にするユーザーごとに、アプリやサービスでLogin with Amazon(LWA)OAuthサーバーとのOAuth 2.0交換を実装する必要があります。この交換により、ユーザーに代わってアプリがスキルにアクセスできるようになります。その後、スキルメッセージREST APIにユーザーアクセストークンを指定して、スキルにメッセージを送信します。

アクセストークンの取得と管理については、以下のガイドラインに従ってください。

これらの認証情報は、SMAPIでスキル認証情報APIを使用して取得することもできます。

LWAエンドポイント

LWAのエンドポイントは、https://api.amazon.com/auth/o2/tokenです。

LWAにアクセストークンをリクエストする

LWAでアクセストークンフローを開始するには、スキルの認証情報が必要です。Alexa開発者コンソールの権限メニューから、スキルのクライアントIDとクライアントシークレットを取得できます。

リクエストの例

クリップボードにコピーされました。

POST /auth/o2/token HTTP/1.1
Host: api.amazon.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8

grant_type: client_credentials
&client_id: your.client.id
&client_secret: your.client.secret
&scope=alexa:skill_messaging

リクエスト本文

パラメーター 説明 必須

grant_type

リクエストされたアクセス認可のタイプです。このパラメーターをclient_credentialsに設定する必要があります。

文字列

client_id

スキルのクライアントIDです。Alexa開発者コンソールのアクセス権限メニューで確認できます。

文字列

client_secret

スキルのクライアントシークレットです。開発者コンソールのアクセス権限メニューで確認できます。

文字列

scope

リクエストされたアクセス権限のスコープです。このパラメーターをalexa:skill_messagingに設定する必要があります。

文字列

応答

成功した場合のHTTP応答には、ベアラーアクセストークン・更新トークンと、アクセストークンが無効になるまでの秒数が含まれます。これらのトークンは、いつでもユーザーに関連付けられるように、被付与者のアクセストークンと一緒に保存します。

応答の例

 HTTP/1.1 200 OK
 Content-Type: application/json;charset UTF-8
 Cache-Control: no-store
 Pragma: no-cache
 {
    "access_token":"someAccessToken",
    "token_type":"bearer",
    "expires_in":3600,
    "scope":"alexa:skill_messaging",
    "refresh_token":"someRefreshToken"
 }

応答本文

応答本文には以下のパラメーターが含まれます。LWAは、これらのパラメーターをapplication/jsonメディアタイプでエンコードします。

パラメーター 説明 必須

access_token

ユーザーアカウントのトークンです。
最大サイズは 2048バイトです。

文字列

token_type

トークンの種類です。常にbearerに設定されます。

文字列

expires_in

アクセストークンが無効になるまでの秒数です。

整数

scope

付与されたアクセス権限のスコープです。このパラメーターをalexa:skill_messagingに設定する必要があります。

文字列

refresh_token

スキルがLWAに新しいアクセストークンをリクエストできるようにするトークンです。
最大サイズは 2048バイトです。

文字列

このセクションでは、アクセストークンを取得するPOSTリクエストの形式について説明します。

HTTPステータスコード

リクエストが正常に完了しなかった場合、200以外のHTTPステータスコードが返されます。応答本文には、reasonパラメーターが含まれる場合があります。

ステータス 説明

400 INVALID_REQUEST

ヘッダーまたはリクエスト本文にある1つ以上のプロパティが無効である、欠落している、形式に誤りがある、のいずれかであることを表します。

400 UNAUTHORIZED_CLIENT

リクエストされた操作を実行する権限がクライアントにありません。

400 UNSUPPORTED_GRANT_TYPE

Grant種別が認可サーバーでサポートされていません。

400 INVALID_SCOPE

リクエストされたスコープが無効です。

401 INVALID_CLIENT

クライアントの認証に失敗しました。

500 SERVER_ERROR

サーバーでエラーが発生しました。リクエストの再試行には指数バックオフを使用します。

503 SERVICE_UNAVAILABLE

サーバーがメンテナンスのために停止しているか、過負荷状態または受信リクエストを処理できない状態になっています。


このページは役に立ちましたか?

最終更新日: 2024 年 02 月 28 日