使用数组 object 时如何在 bot 框架作曲家中传递动态变量值

How to passthrough dynamic variable value in bot framework composer when using array object

所以我的 problem/challenge 是我正在通过 http 请求获取一些数据,我想用这些数据来动态构建多按钮操作。

因此,从我的 http 请求中,我可能会得到 1 到多个值,然后我将使用这些值为每个项目循环构建对机器人的输出操作。

如果我在向数组添加新 object 时使用静态内容,一切正常,例如

{ "type": "Action.Submit",
  "title": "my title",
  "data": "my data"
}

所以这会打印出显示“我的标题”的按钮

但后来我尝试让用户 属性 在那里传递我的数据,它只打印出 属性 名称而不是其中的值。例如

{ "type": "Action.Submit",
  "title": "${turn.myTitle}",
  "data": "${turn.myData}"
}

现在只打印出 property/variable 名称 ${turn.MyTitle}

那么有什么方法可以传递这里的实际数据吗?我可以看到,如果我的类型是字符串,则数据还可以,但它不再像 and object 一样工作(因为开始和结束时有额外的双引号)

所以回答我自己的问题,因为当你几天不关注这个话题时,它似乎会有所帮助:)

因此要传递对象然后创建数组:

  1. 使用设置属性来创建您的对象值,例如turn.action. set properties to object
  2. 在此使用后编辑一个数组 属性,您只需将对象作为表达式“turn.actions”推入其中 push to array

一旦你有了这个数组应该显示正确的值,如:

[ {"type":"Action.Submit"}, {"title":"<your title value>"}, {"data":"<your data value>"} ]

然后只需在 foreach 中循环即可构建多个操作按钮。

参考: