あなたのAlexaダッシュボード 設定

標準のリクエストタイプのリファレンス

Alexaサービスは、ユーザーが音声でスキルと対話するときに、標準のリクエストタイプのいずれかを使用してサービスにリクエストを送信します。リクエストタイプには、次の3つがあります。

  • LaunchRequest: 特定のインテントを提供することなく、ユーザーがスキルを呼び出すときに送信されます。
  • IntentRequest: インテントスキーマで定義されたインテントのいずれかに対応するリクエストをユーザーが行ったときに送信されます。
  • SessionEndedRequest: コードによるセッションの終了以外の理由で、現在のスキルセッションが終了した場合に送信されます。

AudioPlayerインターフェースやPlaybackControllerインターフェースを実装している場合は、スキルはこの3つの標準のリクエストタイプ以外のリクエストも受け取ります。詳細については、AudioPlayerインターフェースPlaybackControllerインターフェースを参照してください。

リクエストの全フォーマットについては、カスタムスキルの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です。例: en-US string

有効な応答タイプ

サービスは、LaunchRequestに対して、以下の任意の組み合わせで応答できます。

標準のプロパティとAudioPlayerディレクティブの両方を含める場合、Alexaは最初に標準のプロパティを処理します。たとえば、Playディレクティブと同じ応答にoutputSpeechを含めると、Alexaは用意されたテキストを読み上げてからオーディオのストリーミングを開始します。

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",
        "resolutions": {
          "resolutionsPerAuthority": [
            {
              "authority": "string",
              "status": {
                "code": "string"
              },
              "values": [
                {
                  "value": {
                    "name": "string",
                    "id": "string"
                  }
                }
              ]
            }
          ]
        }
      }
    }
  }
}

IntentRequestパラメーター

パラメーター 説明
type リクエストタイプを表す値: IntentRequest。 string
requestId 特定のリクエストの固有IDを表します。 string
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。スキルをウェブサービスとしてホスティングしている場面において、リクエストを検証するために使用されます。 string
dialogState 複数回に及ぶダイアログのステータスを示す列挙値です。このプロパティは、スキルがDialogディレクティブを使用する要件を満たしている場合に含まれます。取りうる値: STARTEDIN_PROGRESSCOMPLETED

COMPLETEDになるのは、Dialog.Delegateディレクティブを使用する場合のみです。

intent confirmationを使用する場合、ユーザーがインテント全体を拒否すると(たとえば、確認プロンプトで尋ねられたときに「いいえ」で答えると)、dialogStateCOMPLETEDと見なされます。ユーザーのリクエストに応える前に、IntentオブジェクトでconfirmationStatusプロパティも確認するようにしてください。
string
intent ユーザーが何を望んでいるかを表すオブジェクトです。intentオブジェクトの定義については、Intentオブジェクトを参照してください。 object
locale ユーザーのロケールを示すstringです。例: en-US string

Intentオブジェクト

パラメーター 説明

name

インテントの名前を表す文字列です。

string

confirmationStatus

ユーザーがインテント全体を明示的に確認したか、拒否したかを示す列挙値です。取りうる値:

  • NONE
  • CONFIRMED
  • DENIED

slots

事前に定義されたインテントスキーマに基づいてユーザーの意図を詳しく示すキーと値のペアのマップです。マップは空である場合があります。

  • キーは、スロットの名前を示す文字列です。型: string
  • 値は、タイプがslotのオブジェクトです。型: object。詳細については、Slotオブジェクトを参照してください。

map

Slotオブジェクト

パラメーター 説明

name

スロットの名前を表す文字列です。

string

value

ユーザーがスロットについて話した値を表す文字列です。これは、ユーザーが話した実際の値です。エンティティに対して定義されている標準値やいずれかの同義語である必要はありません。

string

confirmationStatus

ユーザーがこのスロットの値を明示的に確認したか、拒否したかを示す列挙値です。取りうる値:

  • NONE
  • CONFIRMED
  • DENIED

string

resolutions

ユーザー発話からキャプチャされた語句を解決した結果を表すResolutionsオブジェクトです。

これは、カスタムスロットタイプまたは独自の値で拡張した標準スロットタイプを使用するスロットの場合に含まれます。拡張していない標準スロットタイプの場合はresolutionsが含まれないことに注意してください。標準スロットタイプのエンティティ解決を参照してください。

object

Resolutionsオブジェクト

エンティティ解決のために同義語とID値によりカスタムスロットタイプを定義する方法については、スロットタイプ値の同義語とIDの定義(エンティティ解決)を参照してください。

パラメーター 説明

resolutionsPerAuthority[]

エンティティ解決に使用可能なそれぞれの情報源を表すオブジェクトの配列です。情報源は、そのスロットに提供されるデータのソースを表しています。カスタムスロットタイプの場合、情報源は、開発者が定義したスロットタイプです。

array

resolutionsPerAuthority[].authority

スロット値の情報源の名前です。カスタムスロットタイプの場合、この情報源ラベルには、スキルIDとスロットタイプ名が組み込まれます。

string

resolutionsPerAuthority[].status

スロットのエンティティ解決のステータスを表すオブジェクトです。

object

resolutionsPerAuthority[].status.code

ユーザー発話を定義済みのスロットタイプに照らして解決しようと試みた結果を示すコードです。次のいずれかになります。

  • ER_SUCCESS_MATCH: 発話値は、カスタムスロットタイプで明示的に定義された値または同義語に一致しました。
  • ER_SUCCESS_NO_MATCH: 発話値は、カスタムスロットタイプで明示的に定義された値または同義語のいずれにも一致しませんでした。
  • ER_ERROR_TIMEOUT: タイムアウトのためエラーが発生しました。
  • ER_ERROR_EXCEPTION: 処理中の例外のためエラーが発生しました。

string

resolutionsPerAuthority[].values

スロットの解決済みの値の配列です。

array

resolutionsPerAuthority[].values[].value

ユーザー発話とスロットタイプ定義に基づいた、スロットの解決済みの値を表すオブジェクトです。

object

resolutionsPerAuthority[].values[].value.name

解決済みのスロット値の文字列です。

string

resolutionsPerAuthority[].values[].value.id

解決済みのスロット値に対して定義されている固有IDです。これは、スロットタイプ定義で定義されているIDに基づきます。

string

有効な応答タイプ

サービスは、IntentRequestに対して、以下の任意の組み合わせで応答できます。

標準のプロパティとAudioPlayerディレクティブの両方を含める場合、Alexaは最初に標準のプロパティを処理します。たとえば、Playディレクティブと同じ応答にoutputSpeechを含めると、Alexaは用意されたテキストを読み上げてからオーディオのストリーミングを開始します。

SessionEndedRequest

SessionEndedRequestは、セッションが終了したことを通知するために、Alexaスキルに対して行われたリクエストを表すオブジェクトです。その時点で開いていたセッションが、次のいずれかの理由で閉じられたときに、サービスはSessionEndedRequestを受け取ります。

  1. ユーザーが終了すると言った場合。
  2. ユーザーが応答しなかった場合。またはユーザーが、端末によるユーザーの応答聞き取り中に、音声インターフェースに定義されているインテントと一致しない言葉を発した場合。
  3. エラーが発生した場合。
{
  "type": "SessionEndedRequest",
  "requestId": "string",
  "timestamp": "string",
  "reason": "string",
  "locale": "string",
  "error": {
    "type": "string",
    "message": "string"
  }
}

SessionEndedRequestパラメーター

パラメーター 説明

type

リクエストタイプを表す値: SessionEndedRequest

string

requestId

特定のリクエストの固有IDを表します。

string

timestamp

ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。スキルをウェブサービスとしてホスティングしている場面において、リクエストを検証するために使用されます。

string

reason

セッションが終了した理由を示します。取りうる値:

  • USER_INITIATED: ユーザーが明示的にセッションを終了しました。
  • ERROR: エラーが発生したために、セッションが終了しました。
  • EXCEEDED_MAX_REPROMPTS: ユーザーが応答しないか、音声インターフェースで定義されたインテントのいずれとも一致しない発話で応答しました。

string

locale

ユーザーのロケールを示すstringです。例: en-US

string

error

発生したエラーに関する詳細な情報を提供するエラーオブジェクトです。このオブジェクトには、次のプロパティが含まれています。

  • type: 発生したエラーのタイプを示すstringINVALID_RESPONSEDEVICE_COMMUNICATION_ERRORINTERNAL_ERROR)。
  • message: エラーについての詳細な情報を提供するstring

object

有効な応答タイプ

スキルは、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": {
        "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)

インターフェース: