如何在Actions on Google NodeJS SDK v2中获取选中选项的key?
在Actions on Google NodeJS SDK v2中获取Carousel选中选项的Key
刚从v1升级到v2的时候确实会遇到这类API变化的问题,别担心,v2里获取选中选项Key的方式其实更直观了:
在v1中你用app.getSelectedOption(),而在v2版本里,你需要通过conv.input.selectedOption来获取用户选中的Carousel选项Key。这个值就是你在创建Carousel时给每个Item设置的key属性。
举个完整的示例:
1. 创建并展示Carousel
const { actionssdk, Carousel, Image } = require('actions-on-google'); const app = actionssdk({ debug: true }); // 触发展示Carousel的意图 app.intent('display_carousel', (conv) => { conv.ask('请从下面的选项中选择一个:'); conv.ask(new Carousel({ items: { 'coffee_option': { title: '咖啡', description: '一杯香浓的拿铁', image: new Image({ url: 'https://example.com/coffee.jpg', alt: '咖啡图片' }) }, 'tea_option': { title: '茶', description: '一杯清新的绿茶', image: new Image({ url: 'https://example.com/tea.jpg', alt: '茶图片' }) } } })); });
2. 处理用户的选择
// 处理Carousel选择的意图 app.intent('handle_carousel_selection', (conv) => { // 获取选中的选项Key const selectedKey = conv.input.selectedOption; switch(selectedKey) { case 'coffee_option': conv.close('你选择了咖啡,马上为你准备!'); break; case 'tea_option': conv.close('你选择了茶,这就给你泡上!'); break; default: conv.ask('不好意思,我没识别到你的选择,能再选一次吗?'); } });
需要注意的几个点:
- 确保你导入了正确的v2模块(
actionssdk、Carousel等),v2的库结构和v1有明显差异 conv.input.selectedOption直接返回你设置的Key字符串,不需要额外解析- 如果用户没有通过Carousel点击选择而是用语音回答,这个值可能为空,所以最好加个默认处理逻辑
内容的提问来源于stack exchange,提问作者marcorei
相关产品推荐
相关产品推荐

