建前
つまずいてしまったことがあったので同じことで悩んでる人のために紹介しよう!
本音
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関連のドキュメント充実してほしいなと思いつつも、
まぁ、割と最近リリースされたみたいだから仕方無いのか。。。
スキルも公開できるレベルまで一旦作れたので、審査してもらってます。
公開されるのが楽しみ