エラー処理


エラー処理

エラーが発生した場合、Alexaが具体的なアクションを行えるように、レスポンスでエラーコードを返す必要があります。たとえば、コンテンツの視聴権限がない場合は、NOT_SUBSCRIBEDの値をエラーコードに含めます。

エラーメッセージの構造

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

  • type: 発生したエラーの種類を示す[有効なエラータイプの値](../device-apis/alexa-errorresponse.html#error-types)のいずれか。Alexaはこの属性を使用して、ユーザーへの対応を適切に行います。
  • message: エラーについての詳しい情報を提供する文字列。この情報はユーザーには共有されません。

検索結果が見つからない場合

マルチモーダルデバイスのビデオスキルでは、検索結果が見つからない場合、次のエラーを使用する必要があります。

エラータイプ 説明
CONTENT_NOT_FOUND ディレクティブで送信された条件ではコンテンツが見つからない、またはコンテンツのプロバイダーがコンテンツを認識しなかったことを示すには、この値を使用する必要があります。

エラーの例: CONTENT_NOT_FOUND

{
    "event": {
        "header": {
            "messageId": "4e02d3c8-85e8-4e32-8a1b-08c1d52122ad",
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/==",
            "name": "ErrorResponse",
            "namespace": "Alexa.Video",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "DirectedUserId",
                "directedUserId": "access-token-from-Amazon"
            },
            "endpointId": "videoDevice-001"
        },
        "payload": {
            "message": "Alexaによってログに記録されるエラーに関する追加情報",
            "type": "CONTENT_NOT_FOUND"
        }
    }
}

エラーの例: NOT_SUBSCRIBED

{
    "event": {
        "header": {
            "messageId": "4e02d3c8-85e8-4e32-8a1b-08c1d52122ad",
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/==",
            "name": "ErrorResponse",
            "namespace": "Alexa.Video",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "DirectedUserId",
                "directedUserId": "access-token-from-Amazon"
            },
            "endpointId": "videoDevice-001"
        },
        "payload": {
            "message": "Alexaによってログに記録されるエラーに関する追加情報",
            "type": "NOT_SUBSCRIBED"
        }
    }
}

エラーのタイプ

typeに使用されるオプションを次の表に示します。

タイプ 説明
ACTION_NOT_PERMITTED_FOR_CONTENT リクエストされたアクションがコンテンツで許可されていないことを示します。たとえば、削除不可とマークされている録画をユーザーが削除しようとした場合などです。
CONFIRMATION_REQUIRED リクエストされたアクションを完了するために追加の確認が必要であることを示します。
CONTENT_NOT_RECORDABLE コンテンツの制限により録画操作が失敗したことを示します。
NOT_SUBSCRIBED チャンネルやその他のサブスクリプションベースのコンテンツをユーザーが定期購入していないことを示します。
RECORDING_EXISTS 録画が既に存在するため、録画リクエストが失敗したことを示します。
STORAGE_FULL DVRストレージに空き容量がないため、録画リクエストが失敗したことを示します。
TITLE_DISAMBIGUATION_REQUIRED 指定されたタイトルの候補が複数見つかり、録画する番組を決定するにはあいまいさを解消する必要があることを示します。この値は、対象のデバイスにあいまいさを解消するメカニズムがあることを示すために使用します。たとえば、放送される番組が複数あることや、録画をリクエストされたエンティティに関連付けられた番組が複数あることなどをこのエラーで示すことができます。
TUNER_OCCUPIED 別の録画とスケジュールが競合するため、録画リクエストが失敗したことを示します。