30分以内にご自宅に到着します。(IntentRequestへの通常の応答)プログレッシブ応答は、現在のLaunchRequestまたはIntentRequestのコンテキストから送信できます。その他の種類のリクエスト(AudioPlayerリクエストなど)からプログレッシブ応答を送信することはできません。プログレッシブ応答により、応答に使える総時間が変わるわけではありません。ユーザーがスキルを呼び出すと、スキルは約8秒以内に完全な応答を返す必要があります。スキルは完全な応答だけでなく、プログレッシブ応答の処理についてもこの時間内に終了する必要があります。プログレッシブ応答の送信手順プログレッシブ応答を送信するには、プログレッシブ応答APIを呼び出し、directiveを送信します。受信したリクエスト(LaunchRequestまたはIntentRequest)から必要なデータを取得します。有効なプログレッシブ応答APIリクエストを作成するには、apiAccessTokenとrequestIdが必要です。プログレッシブ応答APIを呼び出し、directive(VoicePlayer.Speakなど)を送信します。コンテンツは、<speak>タグで囲まれた、有効なSSMLである必要があります。通常のスキル処理を完了します。プログレッシブ応答の呼び出しが完了したら、スキルの完全なResponseオブジェクトを返します。Responseオブジェクトを返した後はそれ以上のプログレッシブ応答を送信することはできません。再生できるのは、Alexaサービスがスキルの完全なResponseオブジェクトを受信する前に受信したプログレッシブ応答のみです。よいユーザーエクスペリエンスのために、スキルはプログレッシブ応答の呼び出しが完了するのを待ってから完全なResponseオブジェクトを送信することをおすすめします。プログレッシブ応答をデバイスに送信する準備ができたら、プログレッシブ応答APIは204コードを返します。プログレッシブ応答でオーディオを使うSSMLの<audio>タグを使って、プログレッシブ応答に録音した短いオーディオを組み込むことができます。オーディオは30秒以内に収める必要があります。この制限は、通常の<audio>タグで許容されるオーディオの長さより短いことに注意してください。パフォーマンスを最適化するには、スキルをホスティングしている地域に近い地域でSSMLのMP3ファイルをホスティングすることをおすすめします。スキルのLambda関数がアジアパシフィック(東京)地域でホスティングされている場合、MP3をアジアパシフィック(東京)のS3バケットにアップロードするとパフォーマンスが向上します。このタグを使用する場合のMP3関連のその他要件については、<audio>を参照してください。プログレッシブ応答APIに必要なデータを取得するプログレッシブ応答APIのすべての呼び出しには、スキルに送信されるリクエストのapiAccessTokenとrequestIDが必要です。これらはどちらもスキルに送信されるリクエストから取得できます。APIアクセストークンを取得するcontextオブジェクトに指定されたapiAccessTokenを使用します。トークンは、スキルに送信されるすべてのリクエストに含まれます。contextオブジェクトはすべてのリクエストに含まれます。context.System.apiAccessTokenのapiAccessTokenにアクセスできます。プログレッシブ応答APIの呼び出しにこのプロパティの完全な値を含めます。{}}上の例では、わかりやすくするために一部のオブジェクトとプロパティを省略しています。リクエストIDを取得するrequestIdはAlexaからスキルに送信された特定のリクエストを識別します。この値はスキルに送信されるすべてのリクエストに、requestオブジェクト(LaunchRequestやIntentRequestなど)の一部として含まれます。requestIdはrequest.requestIdから取得できます。}}上の例では、わかりやすくするために一部のオブジェクトとプロパティを省略しています。request.requestIdプロパティの値全体を、プログレッシブ応答APIに渡します。スキルのAPIエンドポイントと地域プログレッシブ応答APIのエンドポイントはスキルの地域によって異なります。正しいベースURLはSystemオブジェクト(context.System.apiEndpoint)のapiEndpoint値から取得できます。{}}このドキュメントの例では、日本のエンドポイント(https://api.fe.amazonalexa.com/)を使用しています。複数言語用にスキルを設定する詳細については、多言語に対応するスキルを開発するを参照してください。Directiveを送信するこのAPI呼び出しは、指定したdirectiveをAlexaに送信します。現時点でサポートされているディレクティブはVoicePlayer.Speakのみです。このディレクティブはAlexaに指定したspeechを読み上げるよう指示します。speechは<speak>タグで囲む必要があります。必要に応じてspeech内でSSMLタグを使用できます。スキルは1件のユーザーリクエストにつき、最大5つのdirectiveリクエストを送信できます。この制限を超える呼び出しは拒否されます。各directiveリクエストは個別のAPI呼び出しとして送信する必要があります。"speech":"<speak>"このテキストはスキルが完全な応答を処理している間に読み上げられます。}}Authorizationヘッダーの実際のトークンはこの例よりも長い点に注意してください。必須Authorization次の形式でのAPIアクセストークンです。apiAccessTokenスキルに送信されたリクエストのcontext.System.apiAccessTokenプロパティからapiAccessTokenを取得します。◯リクエスト本文JSONオブジェクトでリクエスト本文を提供します。"speech":"<speak>"このテキストはスキルが完全な応答を処理している間に読み上げられます。必須header.requestIdユーザーリクエストのrequestIdです。スキルに送信されたリクエストに含まれるrequest.requestIdプロパティからrequestIdを取得します。requestIdはスキルに送信されるLaunchRequestまたはIntentRequestのIDと完全に一致する必要があります。◯directive.typedirectiveタイプです。サポートされるdirectiveはVoicePlayer.Speakのみです。◯directive.speechAlexaが読み上げるテキストです。SSMLの<speak>タグで囲まれています。テキストは600文字以内で指定してください。これはResponseオブジェクトのoutputSpeechよりも小さいです。テキストは<speak>タグで囲む必要があります。文字列内で他のSSMLタグを使用しない場合でも同様です。SSMLの<audio>タグを使用する場合、オーディオは30秒以内に収める必要があります。これも、通常のオーディオの長さより短くなっています。このタグを使用する場合のMP3関連のその他要件については、<audio>を参照してください。204コードを返します。応答には他のデータは含まれません。その他のステータスコードはAlexaがテキストを読み上げることのできないエラーを表します。正しい形式のdirective応答がエラーになる場合、問題なく再送して再試行できます。Alexaが同じコンテンツを複数回再生することはありません。有効な応答directive応答が返す可能性のあるコードは以下のとおりです。Alexaは正常にディレクティブを処理しました。requestIdがないか、構造が正しくありません。認証トークンが無効か、リソースに対するアクセス権限がありません。これはrequestIdが実施できないリクエストを表す場合にも返されます。スキルの完全な応答の後にプログレッシブ応答を受信した場合などです。以前403エラーとなっていたエラーは、401エラーとなります。メソッドがサポートされていません。リクエスト件数の超過によりスキルが制限されています。想定外のエラーが発生しました。