Alexa Skills Kit SDK for Node.js 响应构建指南
响应构建基础
在开发Alexa技能时,构建正确的响应是核心任务之一。Alexa Skills Kit SDK for Node.js提供了简洁高效的方式来构建响应,使开发者能够专注于业务逻辑而非繁琐的JSON结构。
响应结构解析
一个标准的Alexa响应包含三个主要部分:
- version:响应格式的版本号
- sessionAttributes:会话中需要保持的键值对数据
- response:实际返回给用户的内容
SDK会自动处理version和sessionAttributes,开发者只需关注response部分的构建。
ResponseBuilder工具类
ResponseBuilder是SDK提供的强大工具,它通过链式调用简化了响应构建过程。以下是其核心优势:
- 减少样板代码
- 提供直观的API
- 支持多种响应类型
- 自动处理复杂结构
常用方法详解
-
语音输出
.speak('欢迎使用本技能') // 设置主语音输出 .reprompt('请告诉我您的选择') // 设置重播提示
-
卡片展示
.withSimpleCard('标题', '内容') // 简单文本卡片 .withStandardCard('标题', '内容', '小图URL', '大图URL') // 带图片的标准卡片 .withLinkAccountCard() // 账户关联卡片
-
音频播放控制
.addAudioPlayerPlayDirective('REPLACE_ALL', '音频URL', 'token', 0) .addAudioPlayerStopDirective()
-
会话控制
.withShouldEndSession(true) // 是否结束会话
-
其他指令
.addHintDirective('试试说"帮助"') // 添加提示 .addVideoAppLaunchDirective('视频URL') // 启动视频
使用示例
const response = handlerInput.responseBuilder
.speak('您好,这是您的每日新闻简报')
.reprompt('需要我继续播报下一条新闻吗?')
.withStandardCard(
'今日新闻',
'头条:科技突破...',
'https://example.com/small.jpg',
'https://example.com/large.jpg'
)
.getResponse();
特殊字符处理注意事项
当响应中包含XML特殊字符时,必须进行转义处理:
- & → &
- < → <
-
→ >
错误示例:
.speak("我喜欢M&M巧克力") // 会报错
正确写法:
.speak("我喜欢M&M巧克力")
显示内容辅助工具
对于支持屏幕显示的设备(如Echo Show),SDK提供了专门的辅助类来构建丰富的视觉内容。
ImageHelper 图像构建
const myImage = new ImageHelper()
.withDescription('产品展示图')
.addImageInstance('https://example.com/product.jpg')
.getImage();
文本内容构建
-
纯文本内容
const textContent = new PlainTextContentHelper() .withPrimaryText('主标题') .withSecondaryText('副标题') .getTextContent();
-
富文本内容
const richText = new RichTextContentHelper() .withPrimaryText('<font size="7">大标题</font>') .withSecondaryText('<i>斜体副标题</i>') .getTextContent();
最佳实践建议
- 保持响应简洁:语音响应不宜过长,建议不超过2-3句话
- 合理使用reprompt:在需要用户输入时提供明确的引导
- 优化视觉内容:为有屏幕设备设计专门的视觉体验
- 错误处理:为各种异常情况准备友好的响应
- 本地化考虑:确保响应内容符合目标地区的语言习惯
通过合理利用Alexa Skills Kit SDK for Node.js提供的响应构建工具,开发者可以高效创建丰富多样的Alexa技能交互体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考