Alexaでホームカードを作成する方法


8

最初のスキルを開発しようとしていますが、ホームカードの作成方法に関する適切な情報が見つかりません

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/providing-home-cards-for-the-amazon-alexa-app#creating-a-basic-home-card- to-display-text

JSON応答に追加しなければならなかったと述べていますが、JSON応答の正確な場所がわかりません。

どんな助けでも大歓迎です。

回答:


4

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


Lambda関数のJava / python / Node.jsコード内の「どこ」に質問に回答します。
mico 2017

これはJavaで導かれた例でしたが、他の人はどのように値を正確に配置するか、原則を維持するという独自の癖を持っています。
mico 2017

5

セクションテキストを表示するための基本的なホームカードの作成

シンプルなカードを作成するには、cardJSONレスポンスにプロパティを含めます。をに設定typeSimpleます。

  • 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":スニペットのテキストに注意してください。


1
しかし、JSONはどこに追加すればよいですか?ラムダ関数で?
Cartman 2017

0

コードでは、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出力に自動的に追加されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.