1

我正在开发回声表演的技能。但是我无法显示来自 python lambda 技能的所有显示模板和内容。我能够完美地完成 alexa 技能,并且能够添加效果很好的图片 url。但是添加显示模板时,显示无效响应。

我已按照本教程 https://medium.freecodecamp.org/how-to-design-and-code-alexa-skills-for-amazons-echo-show-c5716da8fee5

这是要添加到 json 响应中的额外参数。

    directives: [
    {
    type: “Display.RenderTemplate”,
   template: {
       type: “BodyTemplate1”,
       token: “T123”,
       backButton: “HIDDEN”,
       backgroundImage: {
           contentDescription: “StormPhoto”,
           sources: [
               {
                  url: “https://s3.amazonaws.com/hurricane-data/hurricaneBackground.png”
               }
           ]
      },
      title: “Hurricane Center”,
      textContent: {
          primaryText: {
              text: output,
              type: “PlainText”
          }
      }
  }
}],

这就是我修改后的渲染模板方法的样子。def build_speechlet_response(title, output, reprompt_text, should_end_session): imgurl="https://thesweetsetup.com/wp-content/uploads/2014/10/scanbot_ico_1024.png"

return {
    'outputSpeech': {
        'type': 'PlainText',
        'text': output
    },
    'card': {
        'type': 'Standard',
        'title':  title,
        'text': output,
        "image": {
            "smallImageUrl": imgurl,
            "largeImageUrl": imgurl
        }
    },
    'reprompt': {
        'outputSpeech': {
            'type': 'PlainText',
            'text': reprompt_text
        }
    },
directives: [
    {
    type: “Display.RenderTemplate”,
   template: {
       type: “BodyTemplate1”,
       token: “T123”,
       backButton: “HIDDEN”,
       backgroundImage: {
           contentDescription: “StormPhoto”,
           sources: [
               {
                  url: “https://s3.amazonaws.com/hurricane-data/hurricaneBackground.png”
               }
           ]
      },
      title: “Hurricane Center”,
      textContent: {
          primaryText: {
              text: output,
              type: “PlainText”
          }
      }
  }
}],

    'shouldEndSession': should_end_session
}

但这给了我错误的响应格式。我在这里做错了什么。

4

1 回答 1

0

这在 python 中对我有用。但无法呈现列表模板。

def build_response(session_attributes, speechlet_response,text_response,speech_response,secondary_text,teritary_text,should_end_session):
session=should_end_session
return {
    'version': '1.0',
    'sessionAttributes': session_attributes,
    'response': {
           "directives": [
             {
  "type": "Display.RenderTemplate",
  "template": {
"type": "BodyTemplate2",
"token": "A2079",
"backButton": "VISIBLE",
"backgroundImage": {
  "contentDescription": "Textured grey background",
  "sources": [
    {
      "url": "https://i.pinimg.com/originals/8b/e4/cc/8be4ccbbc43b1131c59b09b6c27f2e58.jpg"
    }
  ]
   },
  "title": "Document Scanner",
  "image": {
    "contentDescription": "testing car",
    "sources": [
      {
        "url": "https://thesweetsetup.com/wp-content/uploads/2014/10/scanbot_ico_1024.png"
      }
    ]
  },
  "textContent": {
    "primaryText": {
      "text": '''<font size='6'>'''+text_response+'''</font>''',
      "type": "RichText"
    },
     "secondaryText": {
      "text": secondary_text,
      "type": "PlainText"
    },
    "tertiaryText": {
      "text": teritary_text,
      "type": "PlainText"
    }
  }
}
 }
           ],
           "outputSpeech": {
             "type": "SSML",
             "ssml": '''<speak>'''+speech_response+''' </speak>'''
           },
           "reprompt": {
             "outputSpeech": {
               "type": "SSML",
               "ssml": "<speak>how can i help you ?</speak>"
             }
           },
           "shouldEndSession": session,
            "card": {
             "type": "Standard",
             "title": "content.simpleCardTitle",
             "content": "content.simpleCardContent"
           }
         }
}

text_response,speech_response,secondary_text,teritary_text 都是添加的字符串参数。

于 2017-09-07T13:41:19.677 回答