@ assistant / conversation中CollectionBrowse中循环语句的用法是什么?

问题描述

我想通过在Collectionbrowse中使用for循环来动态显示项目。 我正在使用下面的代码,但使用它时,对Google的操作会返回错误

# Redirect any direct requests for "/quotes/<anything>" back to root
# Except for static resources
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpg|webp|gif|svg|ttf|woff)$
RewriteRule (.*) /$1 [R=301,L]


# BEGIN wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /quotes/
RewriteRule ^index\.PHP$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /quotes/index.PHP [L]
</IfModule>
# END wordpress

我想按照下面的示例将代码更改为某些内容

const {
  conversation,Simple,Card,Image,Button,List,Link,Table,Collectionbrowse,Suggestion,Schema
}  = require('@assistant/conversation');
const functions = require('firebase-functions');
const app = conversation({debug:true});

app.handle('callApi',(conv) => {
  conv.add(new Collectionbrowse({
   items:[
        {
          title: 'Item #1',description: 'Description of Item #1',footer: 'Footer of Item #1',image: {
            url: 'https://developers.google.com/assistant/assistant_96.png',},openUriAction: {
            url: 'https://www.example.com',{
          title: 'Item #2',description: 'Description of Item #2',footer: 'Footer of Item #2',{
          title: 'Item #3',description: 'Description of Item #3',footer: 'Footer of Item #3',}
      ]
  }));
});

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

如果不是这种方式,我应该如何处理for循环语句?

谢谢。

解决方法

我自己找到了答案!

您可以使用循环创建该数组,然后使用该数组创建一个新的CollectionBrowse对象。

const {
  conversation,Simple,Card,Image,Button,List,Link,Table,CollectionBrowse,Suggestion,Schema
}  = require('@assistant/conversation');
const functions = require('firebase-functions');
const app = conversation({debug:true});

app.handle('callApi',(conv) => {
  
  var titleArr = ['Item #1','Item #2','Item #3'];
  var descriptionArr = ['Description #1','Description #2','Description #3'];
  var footerArr = ['footer #1','footer #2','footer #3'];
  var imageArr = [{url: 'https://developers.google.com/assistant/assistant_96.png'},{url: 'https://developers.google.com/assistant/assistant_96.png'},{url: 'https://developers.google.com/assistant/assistant_96.png'}];
  var openUriActionArr = [{url: 'https://www.example.com'},{url: 'https://www.example.com'},{url: 'https://www.example.com'}];
  var itemsArr = [];
  
  for(var i = 0; i<3; i++){
    itemsArr.push({
      title : titleArr[i],description : descriptionArr[i],footer : footerArr[i],image : imageArr[i],openUriAction : openUriActionArr[i]
    });
  }
    
  conv.add(new CollectionBrowse({
   items: itemsArr
  }));
});

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

相关问答

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