あなたのAlexaコンソール
?
サポート

スキルシミュレーションAPI

スキルシミュレーションAPI

スキルシミュレーションAPIは、スキルの実行をシミュレートする非同期のAPIです。成功した場合の応答のヘッダーには、シミュレーションリソースの場所が含まれます。このAPIへのリクエストがエラーになった場合、応答に問題の詳細が記述されています。

SMAPI v1 APIはすべて、該当する場合に次のエラー応答をスローします。HTTP/1.1 429 TooManyRequestsException(リクエストが制限される場合)、HTTP/1.1 503(サービスが利用できない場合)。

この機能は、以下のロケールを使用するスキルではサポートされません。

  • en-AU
  • en-CA
  • en-IN
  • ja-JP

このAPIは、ユーザー自身が開発したスキルのシミュレートに使用できます。シミュレートするスキルが、開発者のアカウントから有効にされたものであり、かつdevelopmentステージにある必要があります。このAPIでは、1ユーザーからの同時に複数のリクエストは許可されていません。

スキルシミュレーションAPIは、スキルのテストにのみ使用します。

関連トピック:Alexa Skills KitコマンドラインインターフェースとAlexaスキル管理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_PROGRESSSUCCESSFULFAILEDのいずれか)です。
invocationRequest.endpointスキルのAWS LambdaまたはHTTPSエンドポイントです
invocationRequest.bodyスキルのAWS LambdaまたはHTTPSエンドポイントに送信されたJSONペイロードです
invocationResponse.bodyスキルのAWS LambdaまたはHTTPSエンドポイントが返したペイロード
skillExecutionTimeInMillisecondsAWS 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."
    }
  }
}