スキルにメッセージを送信するようアプリケーションやサービスを設定する
セッション外のリクエストには、スキルを有効にするユーザーごとに、アプリやサービスで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
リクエスト本文
パラメーター | 説明 | 型 | 必須 |
---|---|---|---|
|
リクエストされたアクセス認可のタイプです。このパラメーターを |
文字列 |
◯ |
|
スキルのクライアントIDです。Alexa開発者コンソールのアクセス権限メニューで確認できます。 |
文字列 |
◯ |
|
スキルのクライアントシークレットです。開発者コンソールのアクセス権限メニューで確認できます。 |
文字列 |
◯ |
|
リクエストされたアクセス権限のスコープです。このパラメーターを |
文字列 |
◯ |
redirect_uri
を含めないでください。応答
成功した場合の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
メディアタイプでエンコードします。
パラメーター | 説明 | 型 | 必須 |
---|---|---|---|
|
ユーザーアカウントのトークンです。 |
文字列 |
◯ |
|
トークンの種類です。常に |
文字列 |
◯ |
|
アクセストークンが無効になるまでの秒数です。 |
整数 |
◯ |
|
付与されたアクセス権限のスコープです。このパラメーターを |
文字列 |
◯ |
|
スキルがLWAに新しいアクセストークンをリクエストできるようにするトークンです。 |
文字列 |
◯ |
このセクションでは、アクセストークンを取得するPOSTリクエストの形式について説明します。
HTTPステータスコード
リクエストが正常に完了しなかった場合、200以外のHTTPステータスコードが返されます。応答本文には、reason
パラメーターが含まれる場合があります。
ステータス | 説明 |
---|---|
|
ヘッダーまたはリクエスト本文にある1つ以上のプロパティが無効である、欠落している、形式に誤りがある、のいずれかであることを表します。 |
|
リクエストされた操作を実行する権限がクライアントにありません。 |
|
Grant種別が認可サーバーでサポートされていません。 |
|
リクエストされたスコープが無効です。 |
|
クライアントの認証に失敗しました。 |
|
サーバーでエラーが発生しました。リクエストの再試行には指数バックオフを使用します。 |
|
サーバーがメンテナンスのために停止しているか、過負荷状態または受信リクエストを処理できない状態になっています。 |
関連トピック
最終更新日: 2024 年 02 月 28 日