我正在尝试发展我的第一项技能,但我没有找到有关如何创建家庭卡的正确信息
说我必须将它添加到 JSON 响应中,我不明白 JSON 响应到底在哪里?
任何帮助深表感谢。
我正在尝试发展我的第一项技能,但我没有找到有关如何创建家庭卡的正确信息
说我必须将它添加到 JSON 响应中,我不明白 JSON 响应到底在哪里?
任何帮助深表感谢。
要创建一个简单的卡片,请
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":
代码段中的文本。
来自亚马逊教程:
使用 Java 库时:
创建一个 SimpleCard 对象。
调用对象的 setTitle() 和 setContent() 方法来设置标题和内容。
将卡片对象传递给任一
SpeechletResponse.newTellResponse() or SpeechletResponse.newAskResponse()
获取包含卡片的 SpeechletResponse。
因此,基本上在 Java 解决方案中,将数据从 json 放置到代码中的 Java 函数调用中。
关于 SpechletResponse 的更完整示例在HelloWorldSpeechlet 中。
您可以将现成的存储库作为 Lambda 函数的基本解决方案(以上代码是其中的一部分),并根据需要修改源代码。
您将在开发人员门户中创建具有意图的技能,例如创建 Lambda 函数。在 Java 中(至少 Node.js 和 Python 也是可能的)并将其运行在 AWS 中并与 Developer Portal 中的技能映射在一起。
之后就是 jsoning 的地方:测试阶段。您将 json 数据推送到服务并在 json 中对其进行验证。
旁注:在卡片案例中,响应应包含卡片,因此在此上下文中放置 json 有点错过领先。您只需让 Alexa 服务生成它。
alexa 技能的 Java 版本,包含您需要的所有必要代码:
https://github.com/amzn/alexa-skills-kit-java/blob/master/README.md
在代码中,如果您使用的是 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 输出中