標準のリクエストタイプのリファレンス
Alexaサービスは、ユーザーが音声でスキルと対話するときに、標準のリクエストタイプのいずれかを使用してサービスにリクエストを送信します。リクエストタイプには、次の4つがあります。
- LaunchRequest: 特定のインテントを提供することなく、ユーザーがスキルを呼び出すときに送信されます。
- IntentRequest: インテントスキーマで定義されたインテントのいずれかに対応するリクエストをユーザーが行ったときに送信されます。
- SessionEndedRequest: コードによるセッションの終了以外の理由で、現在のスキルセッションが終了した場合に送信されます。
- CanFulfillIntentRequest: スキルが検出されたスロットを使用してインテントリクエストを理解できるかどうかを、スキルが実行される前に判別するために、Alexaサービスがスキルをクエリする場合に送信されます。
AudioPlayer
やPlaybackController
などの追加のインターフェースを実装している場合は、スキルは標準のリクエストタイプ以外の追加リクエストも受け取ります。インターフェースがスキルに送信できるリクエストの詳細については、インターフェースのドキュメントを参照してください。カスタムスキルインターフェースのリストについては、インターフェースを参照してください。
すべてのリクエスト形式については、カスタムスキルのJSONインターフェースリファレンス - リクエストフォーマットを参照してください。
- LaunchRequest
- CanFulfillIntentRequest
- IntentRequest
- SessionEndedRequest
- リクエストの例
- サービスインターフェースのリファレンス(JSON)
LaunchRequest
LaunchRequest
は、ユーザーがAlexaスキルへのリクエストを行ったが、特定のインテントを提供しなかったことを示すオブジェクトです。
{
"type": "LaunchRequest",
"requestId": "string",
"timestamp": "string",
"locale": "string"
}
LaunchRequestパラメーター
パラメーター | 説明 | 型 |
---|---|---|
type |
リクエストタイプを表す値: "LaunchRequest" | string |
timestamp |
ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。スキルをウェブサービスとしてホスティングしているときに、リクエストを検証するために使用されます。 | string |
requestId |
特定のリクエストの固有IDを表します。 | string |
locale |
ユーザーのロケールを示すstring です。例:ja-JP 。サポートされているロケールコードを参照してください。 |
string |
有効な応答タイプ
サービスは、LaunchRequest
に対して、以下の任意の組み合わせで応答できます。
- 標準の応答プロパティ(
outputSpeech
、card
、およびreprompt
)。 -
標準のプロパティと
AudioPlayer
ディレクティブの両方を含める場合、Alexaは最初に標準のプロパティを処理します。たとえば、Play
ディレクティブと同じ応答にoutputSpeech
を含めると、Alexaはあらかじめ用意されたテキストを読み上げてからオーディオのストリーミングを開始します。 -
任意のDialogディレクティブ。ディレクティブの
updatedIntent
パラメーターにインテントを指定する必要があります。これにより、ユーザーとのダイアログをすぐに開始できます。応答に
Dialog
ディレクティブと共にOutputSpeech
を含めることができます。Dialog.Delegate
の場合、Alexaはダイアログモデルで定義したプロンプトの前にoutputSpeech
を読み上げます。その他のDialog
ディレクティブの場合、outputSpeechはスロット値の取得や確認を求めるプロンプトとして使われます。
CanFulfillIntentRequest
CanFulfillIntentRequest
は、スキルが検出されたスロットを使用してインテントリクエストを理解し実行できるかどうかを、スキルが実行される前に判別するために、スキルをクエリするリクエストを表すオブジェクトです。リクエスト形式の詳細については、カスタムスキルの無指名対話を理解するを参照してください。
CanFulfillIntentRequestに対する応答
サービスは、CanFulfillIntentRequest
に対して、canFulfillIntent
を使用して応答できます。カスタムスキルの無指名対話を理解するを参照してください。
応答パラメーター全般については、応答本文の構文を参照してください。また、次のパラメーターはcanFulfillIntent
に固有です。
canFulfillIntentパラメーター
パラメーター | 説明 | 型 | 必須 |
---|---|---|---|
|
スキルが検出されたスロットを使用してインテントを理解し実行できるかを判別するすべての応答を表します。有効な値は次のとおりです。
ランク付けの判断では、Alexaは |
enum |
◯ |
|
インテント内で検出された各スロットに対する詳細な応答およびスキルがスロットを理解し満たすことができたかどうかを表すマップです。マップはインテントの |
object |
◯ |
IntentRequest
IntentRequest
は、ユーザーが何をしたいのかに基づいて、スキルに対して行われたリクエストを表すオブジェクトです。
{
"type": "IntentRequest",
"requestId": "string",
"timestamp": "string",
"dialogState": "string",
"locale": "string",
"intent": {
"name": "string",
"confirmationStatus": "string",
"slots": {
"SlotName": {
"name": "string",
"value": "string",
"confirmationStatus": "string",
"slotValue": {},
"resolutions": {
"resolutionsPerAuthority": [
{
"authority": "string",
"status": {
"code": "string"
},
"values": [
{
"value": {
"name": "string",
"id": "string"
}
}
]
}
]
}
}
}
}
}
IntentRequestパラメーター
パラメーター | 説明 | 型 |
---|---|---|
|
リクエストのタイプを表す値: "IntentRequest"。 |
|
|
特定のリクエストの固有IDを表します。 |
|
|
ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。スキルをウェブサービスとしてホスティングしているときに、リクエストを検証するために使用されます。 |
|
|
マルチターンのダイアログのステータスを示す列挙値です。スキルにダイアログモデルがある場合、このプロパティも含まれます。取りうる値:
ダイアログモデルがインテント確認ルールを定義する場合は、ユーザーがインテント全体を確認または拒否したかどうかにかかわらず(たとえば、確認プロンプトで「いいえ」と答える)、 |
|
|
ユーザーが何を望んでいるかを表すオブジェクトです。 |
|
|
ユーザーのロケールを示す |
|
Intentオブジェクト
パラメーター | 説明 | 型 |
---|---|---|
|
インテントの名前を表す文字列です。 |
|
|
ユーザーがインテント全体を明示的に確認したか、拒否したかを示す列挙値です。取りうる値:
|
|
|
事前に定義されたインテントスキーマに基づいてユーザーの意図を詳しく示すキーと値のペアのマップです。マップは空である場合があります。
|
|
スキルが処理できるインテントの定義方法の詳細については、以下を参照してください。
Slotオブジェクト
名前 | 説明 | 型 |
---|---|---|
|
ユーザーがこのスロットの値を明示的に確認したか、拒否したかを示す列挙値です。取りうる値: |
|
|
スロットの名前を表す文字列です。 |
|
|
ユーザーがスロットに1つの値を指定した場合に含まれます( |
|
|
スロットによってキャプチャされた値(1つまたは複数)を表す |
|
|
ユーザーから提供された値であることを示します。常に |
|
|
ユーザーがスロットに1つの値を指定した場合に含まれます( |
|
Resolutionsオブジェクト
エンティティ解決のために同義語とID値によりカスタムスロットタイプを定義する方法については、スロットタイプ値の同義語とIDの定義(エンティティ解決)を参照してください。
名前 | 説明 | 型 |
---|---|---|
|
エンティティ解決に使用可能なそれぞれの情報源を表すオブジェクトの配列です。情報源は、そのスロットに提供されるデータのソースを表しています。カスタムスロットタイプの場合、情報源は、開発者が定義したスロットタイプです。 |
|
|
スロット値の情報源の名前です。カスタムスロットタイプの場合、この情報源ラベルには、スキルIDとスロットタイプ名が組み込まれます。 |
|
|
スロットのエンティティ解決のステータスを表すオブジェクトです。 |
|
|
ユーザー発話を定義済みのスロットタイプに照らして解決しようと試みた結果を示すコードです。詳細については、エンティティ解決のステータスコードを参照してください。 |
|
|
スロットの解決済みの値の配列です。配列の値は、最も一致する可能性の高いものから順に並べられます。このため、配列の最初の値が最も一致する値とみなされます。 |
|
|
ユーザー発話とスロットタイプ定義に基づいた、スロットの解決済みの値を表すオブジェクトです。 |
|
|
解決済みのスロット値に対して定義されている固有IDです。このIDは、スロットタイプ定義で定義されているIDに基づきます。スロット値とIDを定義する方法の詳細については、カスタムスロットタイプのエンティティ解決を参照してください。 |
|
|
解決済みのスロット値の文字列です。 |
|
SlotValueオブジェクト
SlotValue
オブジェクトにはvalue
またはvalues
が含まれますが、両方は含まれません。ユーザーがスロットに1つの値を指定した場合、値はvalue
プロパティになります。ユーザーがスロットに複数の値を指定した場合、値の配列はvalues
プロパティになります。
複数の値を収集するスロットの設定の詳細については、Collect Multiple Values in a Slotを参照してください。
名前 | 説明 | 型 |
---|---|---|
|
|
|
|
スロットがユーザーから取得した値のタイプ。スロット値が1つの値である場合は |
|
|
typeが |
|
|
|
|
エンティティ解決のステータスコード
ER_SUCCESS_MATCH
– 発話された値が正常に既知のエンティティに解決されました。- カスタムスロットタイプの場合、これは値がスロットタイプで明示的に定義された少なくとも1つの値または同義語と一致したことを示します。
- 拡張されたビルトインスロットタイプの場合、追加した拡張値セット内の少なくとも1つの値または同義語に値が一致したことを示します。
- エンティティ解決をサポートするビルトインスロットタイプの場合、値がAlexaナレッジグラフ内の少なくとも1つのエンティティに解決されたことを示します。
ER_SUCCESS_NO_MATCH
– 発話された値が既知のエンティティに解決されませんでした。ER_ERROR_TIMEOUT
– タイムアウトのためエラーになりました。ER_ERROR_EXCEPTION
– 処理中に例外が発生したためエラーになりました。
有効な応答タイプ
サービスは、IntentRequest
に対して、以下の任意の組み合わせで応答できます。
- 標準の応答プロパティ(
outputSpeech
、card
、およびreprompt
)。 -
標準のプロパティと
AudioPlayer
ディレクティブの両方を含める場合、Alexaは最初に標準のプロパティを処理します。たとえば、Play
ディレクティブと同じ応答にoutputSpeech
を含めると、Alexaはあらかじめ用意されたテキストを読み上げてからオーディオのストリーミングを開始します。 -
任意のDialogディレクティブ。
Dialog.Delegate
の場合:dialogState
がCOMPLETED
の場合、updatedIntent
も別のインテントに設定する必要があります。updatedIntent
がないか、元のインテントに設定されている場合、COMPLETED
のダイアログにDialog.Delegate
を返すとエラーになります。dialogState
がSTARTED
またはIN_PROGRESS
の場合、updatedIntent
は元のインテントまたは新しいインテントに設定できます。
SessionEndedRequest
SessionEndedRequest
は、セッションが終了したことを通知するために、Alexaスキルに対して行われたリクエストを表すオブジェクトです。開いているセッションが以下のいずれかの理由で閉じられた場合、サービスはSessionEndedRequest
を受け取ります。
- ユーザーが「終了して」または「終了」と言った場合。
- ユーザーが応答しなかった場合。またはユーザーが、デバイスによるユーザーの応答聞き取り中に、音声インターフェースに定義されているインテントと一致しない言葉を発した場合。
- エラーが発生した場合。
shouldEndSession
フラグにtrue
を設定した場合にも、セッションは終了します。この場合、サービスはSessionEndedRequest
を受け取りません。{
"type": "SessionEndedRequest",
"requestId": "string",
"timestamp": "string",
"reason": "string",
"locale": "string",
"error": {
"type": "string",
"message": "string"
}
}
SessionEndedRequestパラメーター
パラメーター | 説明 | 型 |
---|---|---|
|
リクエストのタイプを表す値: " |
|
|
特定のリクエストの固有IDを表します。 |
|
|
ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。スキルをウェブサービスとしてホスティングしているときに、リクエストを検証するために使用されます。 |
|
|
セッションが終了した理由を示します。取りうる値:
|
|
|
ユーザーのロケールを示す |
|
|
発生したエラーに関する詳細な情報を提供するエラーオブジェクトです。このオブジェクトには、次のプロパティが含まれています。
|
|
有効な応答タイプ
スキルは、SessionEndedRequest
に応答を返すことはできません。
リクエストの例
LaunchRequestの例
{
"version": "1.0",
"session": {
"new": true,
"sessionId": "amzn1.echo-api.session.0000000-0000-0000-0000-00000000000",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe"
},
"attributes": {},
"user": {
"userId": "amzn1.account.AM3B00000000000000000000000"
}
},
"context": {
"System": {
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe"
},
"user": {
"userId": "amzn1.account.AM3B00000000000000000000000"
},
"device": {
"deviceId": "string",
"supportedInterfaces": {
"AudioPlayer": {}
}
}
},
"AudioPlayer": {
"offsetInMilliseconds": 0,
"playerActivity": "IDLE"
}
},
"request": {
"type": "LaunchRequest",
"requestId": "amzn1.echo-api.request.0000000-0000-0000-0000-00000000000",
"timestamp": "2015-05-13T12:34:56Z",
"locale": "string"
}
}
IntentRequestの例
{
"version": "1.0",
"session": {
"new": false,
"sessionId": "amzn1.echo-api.session.0000000-0000-0000-0000-00000000000",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe"
},
"attributes": {
"supportedHoroscopePeriods": {
"daily": true,
"weekly": false,
"monthly": false
}
},
"user": {
"userId": "amzn1.account.AM3B00000000000000000000000"
}
},
"context": {
"System": {
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe"
},
"user": {
"userId": "amzn1.account.AM3B00000000000000000000000"
},
"device": {
"supportedInterfaces": {
"AudioPlayer": {}
}
}
},
"AudioPlayer": {
"offsetInMilliseconds": 0,
"playerActivity": "IDLE"
}
},
"request": {
"type": "IntentRequest",
"requestId": " amzn1.echo-api.request.0000000-0000-0000-0000-00000000000",
"timestamp": "2015-05-13T12:34:56Z",
"dialogState": "COMPLETED",
"locale": "string",
"intent": {
"name": "GetZodiacHoroscopeIntent",
"confirmationStatus": "NONE"
"slots": {
"ZodiacSign": {
"name": "ZodiacSign",
"value": "virgo",
"confirmationStatus": "NONE"
}
}
}
}
}
SessionEndedRequestの例
{
"version": "1.0",
"session": {
"new": false,
"sessionId": "amzn1.echo-api.session.0000000-0000-0000-0000-00000000000",
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe"
},
"attributes": {
"supportedHoroscopePeriods": {
"daily": true,
"weekly": false,
"monthly": false
}
},
"user": {
"userId": "amzn1.account.AM3B00000000000000000000000"
}
},
"context": {
"System": {
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.000000-d0ed-0000-ad00-000000d00ebe"
},
"user": {
"userId": "amzn1.account.AM3B00000000000000000000000"
},
"device": {
"supportedInterfaces": {
"AudioPlayer": {}
}
}
},
"AudioPlayer": {
"offsetInMilliseconds": 0,
"playerActivity": "IDLE"
}
},
"request": {
"type": "SessionEndedRequest",
"requestId": "amzn1.echo-api.request.0000000-0000-0000-0000-00000000000",
"timestamp": "2015-05-13T12:34:56Z",
"reason": "USER_INITIATED",
"locale": "string"
}
}
サービスインターフェースのリファレンス(JSON)
リクエストの形式と標準のリクエストタイプ:
- カスタムスキルのJSONインターフェースのリファレンス
- 標準のリクエストタイプのリファレンス(このドキュメント)
- Alexa.Presentation.APLインターフェース
- Alexa.Presentation.APLTインターフェース
- Alexa.Presentation.HTMLインターフェースのリファレンス
- AudioPlayerインターフェース
- Connectionsインターフェース
- Dialogインターフェース
- Messagingインターフェース
- PlaybackControllerインターフェース
- VideoAppインターフェース
最終更新日: 2023 年 11 月 07 日