为什么@ assistant / conversation中没有轮播

问题描述

如果没有,我要使用两张以上的卡。如果没有,我想知道如何使用列表(列表代码示例)。

绝对不是Dialogflow代码!我需要ActionsOnGoogle代码

const functions = require('firebase-functions');
const syncRequest = require('sync-request');
const express = require('express');
const {
  conversation,Simple,Card,Image,Button,List,Table,Carousel <-------------------------------(Carousel is not constructor ERROR) 
}  = require('@assistant/conversation');

const app = conversation({debug:true});

app.handle('callApi',(conv) => {
     conv.add(new Card({
          title: "hello1",subtitle:  "hi",text: "blablablablablablablablablablablablablablablablablabla",image: new Image({
              url: "some url",alt: "Some alternative text",})
        }),new Card({
          title: "hello2",subtitle:  "ddddddddd",text: "testtesttesttesttesttesttesttesttesttesttesttesttesttest",})
        }));----------------------------------------------------two Card doesn't it work
});

exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);

正在查找ActionsOnGoogleFulfillment文档以及示例/示例代码链接

解决方法

轮播类型已由Collection类型取代,该类型在大多数平台上都具有相同的功能。但是,该名称反映出它可能不会在所有地方都显示为轮播,但仍将代表类似卡片的布局。

对于诸如列表和集合之类的可视选择响应,定义响应分为两个部分:

  1. 为一种类型创建Runtime Type Overrides,并包括有关每个条目的视觉信息
  2. 创建列表或集合并引用该类型的项目以显示

您将通过向会话中添加内容来创建Type Overrides。因此可能看起来像这样:

  conv.session.typeOverrides = [{
    name: 'prompt_option',mode: 'TYPE_REPLACE',synonym: {
      entries: [
        {
          name: 'ITEM_1',synonyms: ['Item 1','First item'],display: {
             title: 'Item #1',description: 'Description of Item #1',image: ASSISTANT_LOGO_IMAGE,}
        },{
          name: 'ITEM_2',synonyms: ['Item 2','Second item'],display: {
             title: 'Item #2',description: 'Description of Item #2',{
          name: 'ITEM_3',synonyms: ['Item 3','Third item'],display: {
             title: 'Item #3',description: 'Description of Item #3',{
          name: 'ITEM_4',synonyms: ['Item 4','Fourth item'],display: {
             title: 'Item #4',description: 'Description of Item #4',]
    }
  }];

然后,您将创建并添加Collection对象,并引用要声明的类型中的键:

  conv.add(new Collection({
    title: 'Collection Title',subtitle: 'Collection subtitle',items: [
      {
        key: 'ITEM_1'
      },{
        key: 'ITEM_2'
      },{
        key: 'ITEM_3'
      },{
        key: 'ITEM_4'
      }
    ],}));
});

对列表执行此操作与此类似。实体类型和视觉组件将是相同的,但是您将定义列表稍有不同:

  conv.add(new List({
    title: 'List title',subtitle: 'List subtitle',}));
});

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...