You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:57:58