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

ErrorResponse

ディレクティブの処理中にエラーが発生した場合、ErrorResponseイベントを返す必要があります。これは、Alexa名前空間にあります。このメッセージには、エラーのタイプとその発生理由を指定するペイロードが含まれている必要があります。

エラーメッセージ形式

ErrorResponseイベントのペイロードでは、typemessageを指定する必要があります。

  • type: 発生したエラーの種類を示す有効なタイプ値の1つ。Alexaはこの属性を使用して、お客様に適切に応答します。
  • message: エラーについての詳細な情報を提供する文字列。この情報がお客様と共有されることはありません。

タイプによっては、ペイロードの内容が追加される可能性があります。

説明されるエラータイプは機能インターフェースに固有ではありません。これを使用して、どのディレクティブにも応答することができます。インターフェースに固有のエラーについては、インターフェースの個別のトピックを参照してください。

エラータイプ値

説明 追加のペイロード
ENDPOINT_UNREACHABLE 現在到達できない、またはオフラインになっているエンドポイントをターゲットとするディレクティブを示します。たとえば、エンドポイントがオフになっている、ユーザーのローカルエリアネットワークから切断されている、エンドポイントとブリッジまたはエンドポイントとデバイス制御クラウドの間の接続が失われているなどです。 なし
NO_SUCH_ENDPOINT 存在していない、または存在しなくなったエンドポイントに送信されるディレクティブを示します。 なし
INVALID_VALUE そのエンドポイントに無効な値を設定しようとするディレクティブを示します。たとえば、暖房モードや、チャンネル値、プログラム値が無効であるリクエストを示すために使用します。 なし
VALUE_OUT_OF_RANGE そのエンドポイントで有効な数値範囲外の値を設定しようとしているディレクティブを示します。たとえば、100%を超えるパーセンテージの値を設定するリクエストに応答するために使用します。温度値の場合はTEMPERATURE_VALUE_OUT_OF_RANGEを使用します。 任意で、validRangeオブジェクトを使用して、有効な範囲を指定します。これには、minimumValueフィールドとmaximumValueフィールドが含まれます。VALUE_OUT_RANGEの例を参照してください。
TEMPERATURE_VALUE_OUT_OF_RANGE そのサーモスタットで有効な数値温度範囲外の値を設定しようとしているディレクティブを示します。サーモスタット固有のエラーについては、Alexa.ThermostatControllerインターフェースのエラーセクションを参照してください。サーモスタット固有のエラーの名前空間は、次のとおりです。 Alexa.ThermostatController 任意で、validRangeオブジェクトを使用して、温度の有効な範囲を指定します。このエラータイプの場合、最小値と最大値はTemperatureオブジェクトです。TEMPERATURE_VALUE_OUT_OF_RANGEの例を参照してください。
INVALID_DIRECTIVE 無効なディレクティブまたは形式が正しくないディレクティブを示します。たとえば、万一エンドポイントが受け取ったのがサポートしていないリクエストであった場合、このエラータイプを返します。 なし
FIRMWARE_OUT_OF_DATE ブリッジまたはエンドポイントのファームウェアが期限切れのためにディレクティブを処理できなかったことを示します。 なし
HARDWARE_MALFUNCTION ブリッジまたはエンドポイントでハードウェアの故障が発生したためにディレクティブを処理できなかったことを示します。 なし
RATE_LIMIT_EXCEEDED エンドポイントまたはブリッジがディレクティブの最大処理レートを超過したことを示します。 なし
INVALID_AUTHORIZATION_CREDENTIAL Alexaによって提供される認証資格情報が無効であることを示します。たとえば、OAuth2アクセストークンがユーザーのデバイス制御クラウドアカウントで有効でない場合などです。 なし
EXPIRED_AUTHORIZATION_CREDENTIAL Alexaによって提供される認証資格情報が有効期限切れであることを示します。たとえば、そのお客様のOAuth2アクセストークンの有効期限が切れている場合などです。 なし
INTERNAL_ERROR ディレクティブの処理中に他のエラータイプのいずれかが発生したために正確に説明できないエラーを示します。たとえば、ディレクティブの処理中に一般的なランタイム例外が発生した場合などです。理想的なのは、このエラーイベントを送信する代わりにより具体的なエラータイプを送信することです。 なし

ErrorResponseイベントの例

{
"event": {
    "header": {
      "namespace": "Alexa",
      "name": "ErrorResponse",
      "messageId": "a9a87be3-a41a-43c4-b734-04a8fcaf9d3c",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "interfaceVersion": "3"
    },
    "endpoint":{
       "scope":{
          "type":"BearerToken",
          "token":"Alexa-access-token"
       },
       "endpointId":"appliance-001"
    },
    "payload": {
      "type": "ENDPOINT_UNREACHABLE",
      "message": "Unable to reach endpoint 12345 because it appears to be offline"
    }
  }
}

validRangeオブジェクト

有効な範囲には、特定の設定の有効な値を示す1つ以上のオブジェクトが含まれます。VALUE_OUT_OF_RANGEエラータイプでvalidRangeオブジェクトを使用して、設定のminimumValuemaximumValueを指定します。Alexa.ThermostatControllerと共に使用すると、validRangeには1つ以上のTemperatureオブジェクトが入ります。

VALUE_OUT_RANGEエラーの例

{
"event": {
    "header": {
      "namespace": "Alexa",
      "name": "ErrorResponse",
      "messageId": "a9a87be3-a41a-43c4-b734-04a8fcaf9d3c",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "interfaceVersion": "3"
    },
    "endpoint":{
       "scope":{
          "type":"BearerToken",
          "token":"Alexa-access-token"
       },
       "endpointId":"appliance-001"
    },
    "payload": {
      "type": "VALUE_OUT_OF_RANGE",
      "message": "The color temperature cannot be set to 500.",
      "validRange": {
        "minimumValue": 1000,
        "maximumValue": 10000
      }
    }
  }
}

TEMPERATURE_VALUE_OUT_OF_RANGEエラーの例

"event": {
    "header": {
      "namespace": "Alexa",
      "name": "ErrorResponse",
      "messageId": "a9a87be3-a41a-43c4-b734-04a8fcaf9d3c",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "interfaceVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "BearerToken": "Alexa-access-token"
       },
       "endpointId" :  "<the endpoint identifier of the endpoint >" ,
    },
    "payload": {
      "type": "TEMPERATURE_VALUE_OUT_OF_RANGE",
      "message": "The requested temperature of -15 is out of range",
      "validRange": {
        "minimumValue": {
           "value": 15.0,
           "scale": "CELSIUS"
        },
        "maximumValue": {
           "value": 30.0,
           "scale": "CELSIUS"
        }
      }
    }
  }
}