最初のスキルを開発しようとしていますが、ホームカードの作成方法に関する適切な情報が見つかりません
JSON応答に追加しなければならなかったと述べていますが、JSON応答の正確な場所がわかりません。
どんな助けでも大歓迎です。
最初のスキルを開発しようとしていますが、ホームカードの作成方法に関する適切な情報が見つかりません
JSON応答に追加しなければならなかったと述べていますが、JSON応答の正確な場所がわかりません。
どんな助けでも大歓迎です。
回答:
Amazonチュートリアルから:
Javaライブラリを使用する場合:
SimpleCardオブジェクトを作成します。
オブジェクトのsetTitle()メソッドとsetContent()メソッドを呼び出して、タイトルとコンテンツを設定します。
カードオブジェクトをどちらかに渡します
SpeechletResponse.newTellResponse() or SpeechletResponse.newAskResponse()
カードを含むSpeechletResponseを取得します。
したがって、基本的にJavaソリューションでは、jsonからJava関数呼び出しへのデータをコードで配置します。
SpechletResponseのより完全な例は、HelloWorldSpeechletにあります。
Lambda関数(上記のコードはその一部です)の基本ソリューションとして、準備が整ったリポジトリを取得して、ソースを好きなように変更できます。
開発者ポータルでインテントを含むスキルを作成し、Lambda関数を作成します。Java(少なくともNode.jsとPythonも使用可能)でそれをAWSで実行し、開発者ポータルのスキルと一緒にマップします。
その後、jsoningの場所、つまりテスト段階が始まります。jsonデータをサービスにプッシュして、jsonで確認します。
補足:カードの場合、応答にはカードが含まれている必要があるため、このコンテキストでjsonを配置することは、少し見当違いです。Alexaサービスにそれを生成させるだけです。
Javaバージョンのalexaスキル。必要なすべての必要なコードが含まれています。
https://github.com/amzn/alexa-skills-kit-java/blob/master/README.md
セクションテキストを表示するための基本的なホームカードの作成
シンプルなカードを作成するには、
card
JSONレスポンスにプロパティを含めます。をに設定type
しSimple
ます。
title
およびcontent
プロパティを表示するテキストに設定します。- 改行を挿入するには、
“\r\n”
または“\n”
内で使用しますcontent
。
{
"version": "1.0",
"response": {
"outputSpeech": {"type":"PlainText","text":"Text to speak back to the user."},
"card": {
"type": "Simple",
"title": "Example of the Card Title",
"content": "Example of card content. This card has just plain text content.\nThe content is formatted with line breaks to improve readability."
}
}
}
上記のスニペットgrey
はJSONスニペットです。"card":
スニペットのテキストに注意してください。
コードでは、node.jsを使用している場合は次のようになります。
const LaunchRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
},
handle(handlerInput) {
var reprompt = '';
const speakOutput = 'Protokollaufnahme gestartet.';
return handlerInput.responseBuilder
.speak(speakOutput)
.reprompt(reprompt)
.withSimpleCard('Protokollaufnahme', speakOutput)
.withShouldEndSession(false)
.getResponse();
},
};
カードは、次のような応答で初期化されます。
.withSimpleCard('title', 'content')
これにより、json出力に自動的に追加されます