LoginSignup
6
3

More than 5 years have passed since last update.

[Alexa] ask-sdk v2でのプログレッシブ応答の実装

Last updated at Posted at 2018-08-11

建前
つまずいてしまったことがあったので同じことで悩んでる人のために紹介しよう!

本音
Qiitaに投稿してみたかった

ことのあらまし

Amazon Echo Spot購入をきっかけにAlexaスキルを作り始めました。
最初はスキル開発トレーニングを参考にコツコツと作っていたのですが、ask-sdk v2なるものがあることを知りまして。
(追記:スキル開発トレーニングが2018/10/16にv2に対応したようです。)
公式も「今後はv2を使え!」とアナウンスしてるので渋々とv1のコードをv2に書き直していました。

ところがどっこい

v1ではプログレッシブ応答があるのに、v2のドキュメントを見ても見当たらない。どういうことなの。。。
ASK関連ドキュメントを見ながら仕方なく自前で作るしかないかなーと思っていたところ、

友よ、ありがとう

世界には同じことで困っている方がいるらしく、Amazonのフォーラムにv2版プログレッシブ応答のコードを見つけました。

フォーラムから転載

function callDirectiveService(handlerInput, speech) {
    const { requestEnvelope } = handlerInput;
    const directiveServiceClient = handlerInput.serviceClientFactory.getDirectiveServiceClient();

    const directive = {
      header: {
        requestId: requestEnvelope.request.requestId
      },
      directive: {
        type: 'VoicePlayer.Speak',
        speech: speech
      }
    }
    return directiveServiceClient.enqueue(
      directive, 
      requestEnvelope.context.System.apiEndpoint, 
      requestEnvelope.context.System.apiAccessToken
    );
}

あらなんと簡単。
もう少しv2関連のドキュメント充実してほしいなと思いつつも、
まぁ、割と最近リリースされたみたいだから仕方無いのか。。。

スキルも公開できるレベルまで一旦作れたので、審査してもらってます。
公開されるのが楽しみ

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3