AudioPlayerインターフェースのリファレンス


AudioPlayerインターフェースのリファレンス

AudioPlayerインターフェースは、オーディオをストリーミングしたり再生状況を監視したりするディレクティブとリクエストを提供します。スキルは、ディレクティブを送信して再生を開始したり停止したりできます。AlexaサービスはAudioPlayerリクエストをスキルに送信し、トラックの終了間際や再生の開始時と停止時など、再生状況に関する情報を提供します。また、Alexaは、リモコンなどのハードウェアボタンや、画面付きのAlexa搭載デバイスの次へ/前へタップコントロールに応答して、PlaybackControllerリクエストも送信します。

オーディオプレーヤーの詳細については、AudioPlayerでのロングフォームオーディオのストリーミングを参照してください。

ディレクティブとリクエスト

AudioPlayerインターフェースには、以下のディレクティブ応答とリクエストタイプが含まれます。Alexaへの応答には、オーディオストリームを開始および停止するディレクティブを含めます。Alexaはリクエストを送信し、再生状況の変更についてスキルに通知します。

インターフェース 説明 タイプ

AudioPlayer.Play

指定したオーディオファイルのストリーミングをAlexaにリクエストします。

ディレクティブ

AudioPlayer.Stop

現在のオーディオストリームの停止をAlexaにリクエストします。

ディレクティブ

AudioPlayer.ClearQueue

すべてのオーディオストリームのキューを削除するようAlexaにリクエストします。

ディレクティブ

AudioPlayer.PlaybackStarted

Playディレクティブで指定されたオーディオストリームをAlexaが開始したことをスキルに通知します。このディレクティブにより、スキルは再生が正常に開始されたことを確認できます。

リクエスト

AudioPlayer.PlaybackFinished

ストリームが終了したときにスキルに通知します。

リクエスト

AudioPlayer.PlaybackStopped

音声リクエストやAudioPlayerディレクティブに対応して、Alexaがオーディオストリームの再生を停止したときに送信されます。

リクエスト

AudioPlayer.PlaybackNearlyFinished

現在のストリームが終了間際で、デバイスが新しいストリームを受信する準備ができている場合にスキルに通知します。

リクエスト

AudioPlayer.PlaybackFailed

ストリームを再生しようとしてエラーが発生した場合にスキルに通知します。

リクエスト

Playディレクティブ

Alexaにリクエストを送信して、指定されたaudioItemで識別されたオーディオファイルをストリーミングします。playBehaviorパラメーターを使用して、ストリームをすぐに再生するか、キューに追加するかを指定できます。PlayディレクティブはAlexaへの応答に追加します。応答のdirectives配列にディレクティブを含めます。

Playディレクティブを送信するときは、応答オブジェクトshouldEndSessionフラグをtrueに設定してセッションを終了します。このフラグをfalseに設定すると、Alexaはストリームを再生するためにデバイスに送信し、その後ストリームを一時停止して、ユーザーの応答を待ちます。

ディレクティブ応答の例

以下は、応答のディレクティブエントリの例です。完全な応答の形式については、応答の形式を参照してください。

{
  "type": "AudioPlayer.Play",
  "playBehavior": "ENQUEUEなどの有効なplayBehavior値",
  "audioItem": {
    "stream": {     
      "url": "://cdn.example.com/url-of-the-stream-to-play",
      "token": "このストリームを表すopaqueトークンです",
      "expectedPreviousToken": "前のストリームを表すopaqueトークンです",
      "offsetInMilliseconds": 0,
      "captionData":{
         "content": "WEBVTT\n\n00:00.000 --> 00:02.107\n<00:00.006>この<00:00.0192>オーディオの <00:01.232>キャプションです\n",
         "type": "WEBVTT"
      }
   },
    "metadata": {
      "title": "表示するトラックのタイトル",
      "subtitle": "表示するトラックのサブタイトル",
      "art": {
        "sources": [
          {
            "url": "://cdn.example.com/url-of-the-album-art-image.png"
          }
        ]
      },
      "backgroundImage": {
        "sources": [
          {
            "url": "://cdn.example.com/url-of-the-background-image.png"
          }
        ]
      }
    }
  }
}

ディレクティブのパラメーター

パラメーター 説明 必須

type

AudioPlayer.Playに設定します。

文字列

playBehavior

再生動作を説明します。有効な値は以下のとおりです。

  • REPLACE_ALL: 現在のストリームおよびキューに追加されたストリームを置き換え、指定されたストリームの再生をすぐに開始します。
  • ENQUEUE: 指定されたストリームを現在のキューの最後に追加します。このリクエストにより、現在再生中のストリームが影響を受けることはありません。
  • REPLACE_ENQUEUED: キューのストリームをすべて置き換えます。このリクエストにより、現在再生中のストリームが影響を受けることはありません。

文字列

audioItem

再生するオーディオストリームに関する情報を提供するオブジェクトが含まれています。

オブジェクト

audioItem.stream

再生するオーディオストリームを表すオブジェクトが含まれています。

オブジェクト

audioItem.stream.url

ポート443のリモートロケーションにあるオーディオコンテンツの場所を指定します。詳細については、オーディオストリームのURLの要件を参照してください。

文字列

audioItem.stream.token

オーディオストリームを識別するopaqueトークンです。
最大長は 1,024文字です。

tokenは次の場合に使用します。

文字列

audioItem.stream.
expectedPreviousToken

前のストリームと思われるストリームを表すopaqueなトークンです。これは前のストリームのaudioItem.stream.tokenの値と一致している必要があります。

このプロパティは、playBehaviorENQUEUEである場合にのみ追加できる必須の項目です。これは、プレイリストの進行とトラック変更のリクエストが同時に発生した場合に、発生しうる競合状態を防ぐために使用されます。詳細については、ENQUEUEの場合のプレイリストの進行状況を参照してください。

文字列

◯(playBehaviorENQUEUEの場合)

audioItem.stream. offsetInMilliseconds

ストリームで、Alexaが再生を開始するポイントのタイムスタンプです。最初からストリームを再生する場合は0に設定します。他の値に設定すると、ストリームの指定の位置から再生を開始します。

長整数

audioItem.stream. captionData

contenttypeの2つのフィールドを持つオブジェクト。これらのフィールドを使用して、オーディオに関連したキャプションを対応デバイスの画面に表示します。captionData オブジェクトは、 contenttypeの値が無いと表示されません。デバイスは機能APIを呼び出してAudioPlayerバージョン1.1以降をサポートできます。

オブジェクト

audioItem.stream .captionData.type

contentフィールド内の文字列の形式。
サポートされている形式: WEBVTT

文字列

audioItem.stream .captionData.content

時刻をエンコードしたキャプションテキスト。
サポートされている形式: WEBVTT

文字列

audioItem.metadata

画面付きのAlexa搭載デバイスに表示されるオーディオに関する情報です。この情報はAlexaアプリには表示されません。

このオブジェクトを含めない場合、Alexaはデフォルトでスキル名を灰色の背景で表示します。

このオブジェクトはオプションです。ただし、audioItem.metadataを含める場合は、4つすべてのmetadataプロパティ(titlesubtitleartbackgroundImage)を設定します。

新しいメタデータ項目を、それぞれ異なるaudioItem.stream.tokenと関連付けます。

詳細については、画面付きのAlexa搭載デバイス用画像ガイドラインを参照してください。

メタデータは、Displayインターフェースを含めているかどうかに関係なく、画面付きのデバイスに表示されます。

オブジェクト

audioItem.metadata.title

表示するタイトルテキストです。通常、これはオーディオトラックのタイトルに使用されます。

文字列

audioItem.metadata.subtitle

カテゴリーやアーティスト名など、表示するサブタイトルテキストです。

文字列

audioItem.metadata.art

表示するアルバムアートを表す画像オブジェクトです。このオブジェクトは、Displayインターフェーステンプレートで使用される画像と同じ形式を使用します。

Echo ShowまたはFire TV Cubeでは、小さい正方形の画像になります。Echo Spotでは、円形にトリミングされて背景として表示されます。

意図したとおりに設定するには、画像についてのガイドラインと仕様に従ってください。

imageオブジェクト

audioItem.metadata.
backgroundImage

表示する背景画像を表す画像オブジェクトです。このオブジェクトは、Displayインターフェーステンプレートで使用される画像と同じ形式を使用します。

Echo ShowまたはFire TV Cubeでは、backgroundImageは画面全体の背景画像になります。Echo Spotでは画像は表示されません。

意図したとおりに設定するには、画像についてのガイドラインと仕様に従ってください。

imageオブジェクト

ENQUEUEの場合のプレイリストの進行状況

audioItem.stream.expectedPreviousTokenプロパティは、プレイリストの進行とトラックの変更のリクエストが同時に発生する状況に対処するためにplayBehaviorENQUEUEにした場合は、必須になります。audioItem.stream.expectedPreviousTokenの値は、前のストリームで提供されたaudioItem.stream.tokenプロパティと一致している必要があります。

例:

  1. 複数のトラックがある1つのプレイリストで、スキルがトラック2をストリーミングしています。
  2. ユーザーが「アレクサ、戻って」と言うと、AMAZON.PreviousIntentが送信されます。
  3. ほぼ同時に、トラック2が終了間際であるためAlexaがPlaybackNearlyFinishedリクエストを送信します。
  4. スキルはまずAMAZON.PreviousIntentを処理して、トラック1の新しいPlayディレクティブを送信します。するとトラック1の再生が開始されます。すでに送信済みのPlaybackNearlyFinishedリクエストは、トラック2が再生されていることを前提としていたため、すでに古くなっています。
  5. スキルはこの古くなっているPlaybackNearlyFinishedリクエストを処理して、最初に再生していたトラック2の次のトラックであるトラック3のPlayディレクティブを送信します。このリクエストには、トラック2に設定されたexpectedPreviousTokenが含まれています。
  6. ディレクティブ内のこのexpectedPreviousTokenは、再生中のストリームのtokenと一致しないため、デバイスはこのディレクティブを無視します。
  7. トラック1が終了すると、AlexaはPlaybackNearlyFinishedリクエストを送信します。スキルはトラック2のPlayディレクティブで応答します。トラック1が終了すると、このトラックの再生が開始します。

このチェックが行われない場合、ステップ5で送信されたディレクティブによってトラック3がキューに追加され、トラック1の終了時にオーディオがトラック1からトラック3にスキップされることになります。

画面付きのAlexa搭載デバイス用画像ガイドライン

audioItem.metadata.artプロパティとaudioItem.metadata.backgroundImageプロパティに画像を設定する場合、以下のガイドラインに注意してください。

  • 新しいメタデータを含むトラックを送信する場合は、トラックのaudioItem.stream.tokenプロパティも必ず変更してください。
  • 画像はオーディオ画像の要件を満たしている必要があります。詳細については、画像の要件と推奨事項を参照してください。
  • audioItem.metadata.artについては、正方形の画像を使用することをお勧めします。画像が正方形でない場合、デバイスに不要な黒い空白が表示されます。Echo Spotでは画像が円形にトリミングされることに注意してください。
  • imageオブジェクトを使用すれば、source配列に複数の画像URLを設定できます。Displayインターフェースを使用すると、デバイスでは最高解像度で画像が表示されます。
  • imageオブジェクトの特定の画像のsourceに関する以下のプロパティは、オーディオの背景画像とアルバムアートを表示するときには使用されないため、オブジェクトに含める必要はありません。
    • contentDescription
    • size
    • widthPixels
    • heightPixels

Stopディレクティブ

現在のオーディオ再生を停止します。応答のdirectives配列にディレクティブを含めます。

ディレクティブ応答の例

以下は、応答のディレクティブエントリの例です。完全な応答の形式については、応答の形式を参照してください。

{
  "type": "AudioPlayer.Stop"
}

ディレクティブのパラメーター

パラメーター 説明 必須
type AudioPlayer.Stopに設定します 文字列

ClearQueueディレクティブ

オーディオ再生のキューを削除します。このディレクティブを設定して、現在再生中のストリームを停止せずにキューを削除したり、キューを削除して現在再生中のストリームを停止したりできます。応答のdirectives配列にディレクティブを含めます。

ディレクティブ応答の例

以下は、応答のディレクティブエントリの例です。完全な応答の形式については、応答の形式を参照してください。

{
  "type": "AudioPlayer.ClearQueue",
  "clearBehavior" : "CLEAR_ALLなどの有効なclearBehavior値"
}

ディレクティブのパラメーター

パラメーター 説明 必須

type

AudioPlayer.ClearQueueに設定します。

文字列

clearBehavior

キューを削除する動作を説明します。有効な値は以下のとおりです。

  • CLEAR_ENQUEUED:キューを削除して、現在再生中のストリームの再生を継続します。
  • CLEAR_ALL:再生キュー全体を削除して、現在再生中のストリームを停止します(再生している場合)。

文字列

PlaybackStartedリクエスト

Playディレクティブで以前に送信されたオーディオストリームの再生をAlexaが開始すると、スキルに送信されます。このリクエストにより、スキルは再生が正常に開始されたことを確認できます。また、このリクエストは、Alexaが音声リクエストのために再生を一時停止してから再開したときにも、通知の目的でスキルに送信されます。

リクエストの例

{
  "version": "1.0",
  "context": {
    "System": {
      "application": {},
      "user": {},
      "device": {}
    }
  },
  "request": {
    "type": "AudioPlayer.PlaybackStarted",
    "requestId": "unique.id.for.the.request",
    "timestamp": "リクエストのタイムスタンプ(形式: 2018-04-11T15:15:25Z)",
    "token": "現在再生中のストリームを表すトークン",
    "offsetInMilliseconds": 0,
    "locale": "ja-JPなどのロケールコード"
  }
}

リクエストのパラメーター

パラメーター 説明
type AudioPlayer.PlaybackStarted 文字列
requestId 特定のリクエストの固有IDを表します。 文字列
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。[スキルをウェブサービスとしてホスティングしているときに、リクエストを検証する][hosting-as-web-service#timestamp]ために使用されます。 文字列
token オーディオストリームを表すopaqueトークンです。Playディレクティブを送信するときに、このトークンを提供します。 文字列
offsetInMilliseconds PlaybackStartedリクエストが送信された時点のトラックのオフセットをミリ秒単位で指定します。 長整数
locale ユーザーのロケールを示すstringです。例:ja-JP。[サポートされているロケールコード][service_ref#request-locale]を参照してください。 文字列

完全なリクエストの形式については、リクエストの形式を参照してください。

応答

スキルは、PlaybackStartedに対してStopまたはClearQueueディレクティブで応答できます。

応答に以下を含めることはできません。

  • outputSpeechcardrepromptなどの標準のプロパティ。
  • 他の任意のAudioPlayerディレクティブ。
  • ほかのインターフェースのほかのディレクティブ([Dialogディレクティブ][dialog-interface-reference#directives]など)。

PlaybackFinishedリクエスト

Alexaが再生しているストリームが終了すると、送信されます。スキルがStopディレクティブで再生を明示的に停止した場合、AlexaはPlaybackFinishedの代わりにPlaybackStoppedを送信します。

リクエストの例

{
  "version": "1.0",
  "context": {
    "System": {
      "application": {},
      "user": {},
      "device": {}
    }
  },
  "request": {
    "type": "AudioPlayer.PlaybackFinished",
    "requestId": "unique.id.for.the.request",
    "timestamp": "リクエストのタイムスタンプ(形式: 2018-04-11T15:15:25Z)",
    "token": "現在再生中のストリームを表すトークン",
    "offsetInMilliseconds": 0,
    "locale": "ja-JPなどのロケールコード"
  }
}

リクエストのパラメーター

パラメーター 説明
type AudioPlayer.PlaybackFinished 文字列
requestId 特定のリクエストの固有IDを表します。 文字列
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。[スキルをウェブサービスとしてホスティングしているときに、リクエストを検証する][hosting-as-web-service#timestamp]ために使用されます。 文字列
token オーディオストリームを表すopaqueトークンです。Playディレクティブを送信するときに、このトークンを提供します。 文字列
offsetInMilliseconds PlaybackFinishedリクエストが送信された時点のトラックのオフセットをミリ秒単位で指定します。 長整数
locale ユーザーのロケールを示すstringです。例:ja-JP。[サポートされているロケールコード][service_ref#request-locale]を参照してください。 文字列

応答

スキルは、PlaybackFinishedに対してStopまたはClearQueueディレクティブで応答できます。

応答に以下を含めることはできません。

  • outputSpeechcardrepromptなどの標準のプロパティ。
  • 他の任意のAudioPlayerディレクティブ。
  • ほかのインターフェースのほかのディレクティブ([Dialogディレクティブ][dialog-interface-reference#directives]など)。

PlaybackStoppedリクエスト

以下のAudioPlayerディレクティブのいずれかに応答して、Alexaがオーディオストリームの再生を停止したときに送信されます。

  • Stop
  • PlayREPLACE_ALLplayBehavior
  • ClearQueueCLEAR_ALLclearBehavior

ユーザーがAlexaに音声リクエストをした場合にも再生が一時停止になるので、このリクエストが送信されます。この場合、音声対話が完了すると、再生が自動的に開始されます。オーディオストリームが終了したために再生が停止した場合、AlexaはPlaybackStoppedの代わりにPlaybackFinishedを送信します。

リクエストの例

{
   "version": "1.0",
  "context": {
    "System": {
      "application": {},
      "user": {},
      "device": {}
    }
  },
  "request": {
    "type": "AudioPlayer.PlaybackStopped",
    "requestId": "unique.id.for.the.request",
    "timestamp": "リクエストのタイムスタンプ(形式: 2018-04-11T15:15:25Z)",
    "token": "現在再生中のストリームを表すトークン",
    "offsetInMilliseconds": 0,
    "locale": "ja-JPなどのロケールコード"
  }
}

リクエストのパラメーター

パラメーター 説明
type AudioPlayer.PlaybackStopped 文字列
requestId 特定のリクエストの固有IDを表します。 文字列
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。[スキルをウェブサービスとしてホスティングしているときに、リクエストを検証する][hosting-as-web-service#timestamp]ために使用されます。 文字列
token オーディオストリームを表すopaqueトークンです。Playディレクティブを送信するときに、このトークンを提供します。 文字列
offsetInMilliseconds PlaybackStoppedリクエストが送信された時点のトラックのオフセットをミリ秒単位で指定します。 長整数
locale ユーザーのロケールを示すstringです。例:ja-JP。[サポートされているロケールコード][service_ref#request-locale]を参照してください。 文字列

応答

PlaybackStoppedに対してスキルから応答を返すことはできません。

PlaybackNearlyFinishedリクエスト

デバイスが、次のストリームをキューに追加する準備ができている場合に送信されます。

オーディオストリームのプレイリストを次に進めるには、このリクエストに対して次のストリームのPlayディレクティブで応答し、ENQUEUEまたはREPLACE_ENQUEUEDplayBehaviorを設定します。これにより、現在の再生を停止することなく、キューに新しいストリームを追加できます。Alexaは、現在再生中の曲が終了すると、新しいオーディオアイテムのストリーミングを開始します。

リクエストの例

{
   "version": "1.0",
  "context": {
    "System": {
      "application": {},
      "user": {},
      "device": {}
    }
  },
  "request": {
    "type": "AudioPlayer.PlaybackNearlyFinished",
    "requestId": "unique.id.for.the.request",
    "timestamp": "リクエストのタイムスタンプ(形式: 2018-04-11T15:15:25Z)",
    "token": "現在再生中のストリームを表すトークン",
    "offsetInMilliseconds": 0,
    "locale": "ja-JPなどのロケールコード"
  }
}

リクエストのパラメーター

パラメーター 説明
type AudioPlayer.PlaybackNearlyFinished 文字列
requestId 特定のリクエストの固有IDを表します。 文字列
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。[スキルをウェブサービスとしてホスティングしているときに、リクエストを検証する][hosting-as-web-service#timestamp]ために使用されます。 文字列
token 現在再生中のオーディオストリームを表すopaqueトークンです。Playディレクティブを送信するときに、このトークンを提供します。 文字列
offsetInMilliseconds PlaybackNearlyFinishedリクエストが送信された時点のトラックのオフセットをミリ秒単位で指定します。 長整数
locale ユーザーのロケールを示すstringです。例:ja-JP。[サポートされているロケールコード][service_ref#request-locale]を参照してください。 文字列

応答

スキルは、PlaybackNearlyFinishedに対して、どのAudioPlayerディレクティブでも応答できます。

応答に以下を含めることはできません。

  • outputSpeechcardrepromptなどの標準のプロパティ。
  • ほかのインターフェースのほかのディレクティブ([Dialogディレクティブ][dialog-interface-reference#directives]など)。

PlaybackFailedリクエスト

ストリームを再生しようとしているときに、Alexaにエラーが発生した場合に送信されます。

このリクエストタイプには、requestオブジェクトのプロパティと、currentPlaybackStateオブジェクトのプロパティという、2つのtokenプロパティが含まれています。request.tokenプロパティは、再生に失敗したストリームを表します。currentPlaybackState.tokenプロパティの値は、Alexaがストリームを再生していてキューの次のストリームをバッファリングしようとしたときにエラーが発生すると、異なる場合があります。この場合、currentPlaybackState.tokenは正常に再生されていたストリームを表します。

リクエストの例

{
   "version": "1.0",
  "context": {
    "System": {
      "application": {},
      "user": {},
      "device": {}
    }
  },
  "request": {
    "type": "AudioPlayer.PlaybackFailed",
    "requestId": "unique.id.for.the.request",
    "timestamp": "リクエストのタイムスタンプ(形式: 2018-04-11T15:15:25Z)",
    "token": "現在再生中のストリームを表すトークン",
    "offsetInMilliseconds": 0,
    "locale": "ja-JPなどのロケールコード",
    "error": {
      "type": "エラーコード",
      "message": "発生したエラーの説明"
    },
    "currentPlaybackState": {
      "token": "エラー発生時に再生していたストリームを表すトークン",
      "offsetInMilliseconds": 0,
      "playerActivity": "エラー発生時のプレーヤーのステータス(PLAYINGなど)"
    }
  }
}

リクエストのパラメーター

パラメーター 説明
type AudioPlayer.PlaybackFailed 文字列
requestId 特定のリクエストの固有IDを表します。 文字列
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。[スキルをウェブサービスとしてホスティングしているときに、リクエストを検証する][hosting-as-web-service#timestamp]ために使用されます。 文字列
token Playディレクティブから提供されるopaqueトークンで、再生に失敗したストリームを表します。 文字列
locale ユーザーのロケールを示すstringです。例:ja-JP。[サポートされているロケールコード][service_ref#request-locale]を参照してください。 文字列
error エラー情報を持つオブジェクトが含まれています。 オブジェクト
error.type 特定のタイプのエラーを識別します。各エラータイプの詳細については、再生エラーを参照してください。 文字列
error.message デバイスで発生したエラーの説明です。 文字列
currentPlaybackState エラー発生時の再生アクティビティに関する詳細を提供するオブジェクトが含まれています。 オブジェクト
currentPlaybackState.
token
エラー発生時に再生中のオーディオストリームを表すopaqueトークンです。これは、request.tokenプロパティの値と異なる場合があることに注意してください。 文字列
currentPlaybackState.
offsetInMilliseconds
エラー発生時のトラックのオフセットをミリ秒単位で指定します。 長整数
currentPlaybackState.
playerActivity
エラー発生時のプレーヤーのステータスを以下のように識別します。 PLAYINGPAUSEDFINISHEDBUFFER_UNDERRUN、またはIDLE 文字列
エラータイプ 説明
MEDIA_ERROR_UNKNOWN 不明なエラーが発生しました。
MEDIA_ERROR_INVALID_REQUEST リクエストが不正な形式であるか、認証に失敗したか、アクセス権がないか、該当するものがありません。
MEDIA_ERROR_SERVICE_UNAVAILABLE AlexaがストリームのURLにアクセスできませんでした。
MEDIA_ERROR_INTERNAL_SERVER_ERROR Alexaはリクエストを受け取りましたが、適切に処理できませんでした。
MEDIA_ERROR_INTERNAL_DEVICE_ERROR デバイスで内部エラーが発生しました。

応答

スキルは、PlaybackFailedに対して、どのAudioPlayerディレクティブでも応答できます。

応答に以下を含めることはできません。

  • outputSpeechcardrepromptなどの標準のプロパティ。
  • ほかのインターフェースのほかのディレクティブ([Dialogディレクティブ][dialog-interface-reference#directives]など)。

System.ExceptionEncounteredリクエスト

AudioPlayerリクエストに対する応答が原因でエラーが発生した場合、AlexaからスキルにSystem.ExceptionEncounteredリクエストが送信されます。Alexaは、このリクエストへの応答に含まれるディレクティブをすべて無視します。

リクエストの例

{
  "type": "System.ExceptionEncountered",
  "requestId": "unique.id.for.the.request",
  "timestamp": "次の形式のリクエストのタイムスタンプ:  2018-04-11T15:15:25Z",
  "locale": "ja-JPなどのロケールコード",
  "error": {
    "type": "INVALID_RESPONSEなどのエラーコード",
    "message": "発生したエラーの説明"
  },
  "cause": {
    "requestId": "エラーの原因となったリクエストの一意のID"
  }
}

リクエストのパラメーター

パラメーター 説明
type System.ExceptionEncountered string
requestId 特定のリクエストの固有IDを表します。 string
timestamp ISO 8601形式で表された文字列で、Alexaがリクエストを送信した日時を提供します。[スキルをウェブサービスとしてホスティングしているときに、リクエストを検証する][hosting-as-web-service#timestamp]ために使用されます。 string
locale ユーザーのロケールを示すstringです。例:ja-JP。[サポートされているロケールコード][service_ref#request-locale]を参照してください。 string
error エラー情報を持つオブジェクトが含まれています。 object
error.type 特定のタイプのエラー(INVALID_RESPONSEDEVICE_COMMUNICATION_ERRORINTERNAL_ERROR)を識別します。 string
error.message デバイスで発生したエラーの説明です。 string
cause.requestId エラーの原因となったリクエストのrequestIdです。 string

応答

System.ExceptionEncounteredリクエストに対してスキルから応答を返すことはできません。


このページは役に立ちましたか?

最終更新日: 2023 年 11 月 07 日