スキルシミュレーションAPI、v0
スキルシミュレーションAPIは、スキルの実行をシミュレートする非同期のAPIです。成功した場合の応答のヘッダーには、シミュレーションリソースの場所が含まれます。このAPIへのリクエストがエラーになった場合、応答に問題の詳細が記述されています。
この機能は、以下のロケールを使用するスキルではサポートされません。
- en-AU
- en-CA
- en-IN
- ja-JP
このAPIは、ユーザー自身が開発したスキルのシミュレートに使用できます。シミュレートするスキルが、開発者のアカウントから有効にされたものであり、かつ開発中のステージにある必要があります。このAPIでは、1ユーザーからの同時に複数のリクエストは許可されていません。
スキルシミュレーションAPIは、スキルのテストにのみ使用します。
関連トピック:Alexa Skills KitコマンドラインインターフェースとAlexaスキル管理APIの概要とスキル呼び出しAPI
- スキルシミュレーションAPIリクエスト
- スキルシミュレーションAPI応答
スキルシミュレーションAPIリクエスト
HTTPメソッドとパス
POST /skills/amzn1.ask.skill.12345678-12d1-5b2b-a012-1d1f33311123/simulations
リクエスト
リクエストヘッダー
Content-Type: application/json
Accept: application/json
X-Amzn-RequestId: string
リクエスト本文
{
"input": {
"content": "ask greeter to say hello"
},
"device": {
"locale": "en-US"
}
}
リクエストアトリビュートの定義
アトリビュート | 説明 |
---|---|
content | ユーザーがAlexaに対して話しかける発話テキストを表す文字列です。 |
locale | シミュレーションで使用する仮想デバイスの有効なロケール(en-US など)です。 |
スキルシミュレーションAPI応答
応答ヘッダー
Content-Type: application/json
Location: /skills/{skillId}/simulations/{simulationId}
X-Amzn-RequestId: string
応答本文
200 OK
{
"id": string,
"status": "IN_PROGRESS",
"result": null
}
エラー
エラー応答本文
{
"message": string
}
アトリビュート | 説明 |
---|---|
code | エラーメッセージにマッピングされるエラーコードです。各ロケールの開発者がこのコードに基づいて、エラー詳細を調べることができるようにしておく必要があります。 |
message | 読める形式でのエラー詳細です。 |
応答のエラーコード
応答 | 説明 |
---|---|
400 Bad Request | データが無効か、存在しません。 |
403 Forbidden | APIユーザーにこのAPIを呼び出す権限がないか、現在このスキルのシミュレーションを許可されていません。 |
404 Not Found | 指定したスキルが存在しません。 |
409 Conflict | この開発者の別のリクエストを現在処理中です。開発者が、複数のスキルのシミュレーションリクエストを同時に実行しようとしました。 |
スキルシミュレーションリクエストのサンプル(POST)
HTTPメソッドとパス
POST /skills/34b178945-6ec3-1749-a123-3cbd123456ab/simulations
リクエストヘッダー
Authorization: string (Login with Amazon access token)
Content-Type: application/json
Accept: application/json
リクエスト本文
{
"input": {
"content": "ask greeter to say hello"
},
"device": {
"locale": "en-US"
}
}
スキルシミュレーション応答のサンプル(200 OK) - 成功
インテントリクエストに対する正常な応答です。
応答ヘッダー
HTTP 200 OK
Location: /skills/amzn1.ask.skill.12345678-12d1-5b2b-a012-1d1f33311123/simulations/34b178945-6ec3-1749-a123-3cbd123456ab
X-Amzn-RequestId: c03faf54-684d-11e7-6249-6bbd1825c634
応答本文
{
"id": "34b178945-6ec3-1749-a123-3cbd123456ab",
"status": "IN_PROGRESS",
"result": null
}
スキルシミュレーションリクエスト(GET)
HTTPメソッドとパス
GET /skills/amzn1.ask.skill.12345678-12d1-5b2b-a012-1d1f33311123/simulations/34b178945-6ec3-1749-a123-3cbd123456ab
リクエストヘッダー
Authorization: string (Login with Amazon access token)
Content-Type: application/json
Accept: application/json
リクエスト本文
GETリクエストのリクエスト本文がありません。
GETリクエストに対するスキルシミュレーション応答(200 OK)
応答ヘッダー
Content-Type: application/json
X-Amzn-RequestId: string
応答本文
{
"id": string,
"status": string enum["IN_PROGRESS", "SUCCESSFUL", "FAILED"],
"result": {
"skillExecutionInfo": {
"invocationRequest": {
"endpoint": string,
"body": object
},
"invocationResponse": {
"body": object
},
"metrics": {
"skillExecutionTimeInMilliseconds": integer
}
},
"error": {
"message": string
}
}
}
アトリビュート | 説明 |
---|---|
id | シミュレーションIDです。 |
status | シミュレーションの現在のステータス(IN_PROGRESS 、SUCCESSFUL 、FAILED のいずれか)です。 |
invocationRequest.endpoint | スキルのAWS LambdaまたはHTTPSエンドポイントです |
invocationRequest.body | スキルのAWS LambdaまたはHTTPSエンドポイントに送信されたJSONペイロードです |
invocationResponse.body | スキルのAWS LambdaまたはHTTPSエンドポイントが返したペイロード |
skillExecutionTimeInMilliseconds | AWS LambdaまたはHTTPSエンドポイントがリクエストを処理するのにかかった時間(ミリ秒) |
スキルシミュレーションリクエストのサンプル(GET)
HTTPメソッドとパス
POST /skills/amzn1.ask.skill.1234.../simulations
リクエストヘッダー
Content-Type: application/json
Accept: application/json
X-Amzn-RequestId: string
リクエスト本文
{
"input": {
"content": "ask greeter to say hello"
},
"device": {
"locale": "en-US"
}
}
スキルシミュレーション応答のサンプル(200 OK) - 成功
インテントリクエストに対する正常な応答です。
応答ヘッダー
HTTP 200 OK
Content-Type: application/json
X-Amzn-RequestId: string
応答本文
{
"id": "34b178945-6ec3-1749-a123-3cbd123456ab",
"status": "SUCCESSFUL",
"result": {
"skillExecutionInfo": {
"invocationRequest": {
"endpoint": "arn:aws:lambda:us-east-1:123456789:function:HelloWorld",
"body": {
"version": "1.0",
"session": {
"new": true,
"sessionId": "aaf7b112-434c-11e7-2563-6bbd1672c748",
"application": {
"applicationId": "amzn1.ask.skill.12345678-12d1-5b2b-a012-1d1f33311123"
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account.12345ABCDEFGH"
}
},
"context": {
"System": {
"application": {
"applicationId": "amzn1.ask.skill.12345678-12d1-5b2b-a012-1d1f33311123"
},
"user": {
"userId": "amzn1.ask.account.12345ABCDEFGH"
}
}
},
"request": {
"type": "IntentRequest",
"requestId": "c03faf54-684d-11e7-6249-6bbd1825c634",
"timestamp": "2017-08-14T04:20:20Z",
"locale": "en-US",
"intent": {
"name": "SayHello"
}
}
}
},
"invocationResponse": {
"body": {
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "hello, world"
},
"shouldEndSession": true
}
}
},
"metrics": {
"skillExecutionTimeInMilliseconds": 100
}
},
"error": null
}
}
スキルシミュレーション応答のサンプル(200 OK) - 処理中
応答ヘッダー
HTTP 200 OK
Content-Type: application/json
X-Amzn-RequestId: string
応答本文
{
"id": 34b178945-6ec3-1749-a123-3cbd123456ab,
"status": "IN_PROGRESS",
"result": null
}
スキルシミュレーション応答のサンプル(200 OK) - 失敗
この応答は、スキルシミュレーションが許可されていない場合に発生します。
応答ヘッダー
HTTP 200 OK
Content-Type: application/json
X-Amzn-RequestId: string
応答本文
{
"id": "34b178945-6ec3-1749-a123-3cbd123456ab",
"status": "FAILED",
"result": {
"skillExecutionInfo": null,
"error": {
"message": "Skill is currently disabled in development stage. Please enable skill in order to call this API."
}
}
}