如何使用 bot composer 动态配置 HTTP REQUEST 的正文部分

How can I use the bot composer to dynamically configure the body part of a HTTP REQUEST

我正在使用 Bot Composer 发布我的第一个聊天机器人。我需要构建聊天机器人来发送 HTTP POST 请求以从远程网站获取外部资源。根据 composer 接口的规定,我可以在 HTTP POST 请求的正文中嵌入 JSON、表单数据或字符串。我不需要对 POST 请求的正文部分进行硬编码,而是需要传入一个或多个属性(聊天机器人的变量)以动态生成 HTTP POST 的正文。这是我的问题:

(1) 我可以向 HTTP REQUEST 的正文部分传递一个变量吗(例如 POST)?我可以在 HTTP POST 正文中嵌入一个 属性 例如 $(user.name) 吗?

比如我可以在字符串或者表单数据(比如fname=$(user.name)中嵌入一个属性比如$(user.name)来构造body部分HTTP POST REQUEST?

(2) 文档指定有一个预构建函数JSON 来序列化数据。如果我理解正确的话,我无法将变量(例如 $(user.name) 传递给 JSON 预构建函数。因此,我可能需要在正文中嵌入一个表达式来传递变量.然而,我找不到任何详细信息。有没有什么地方可以找到一个很好的例子来说明如何在 HTTP REQUEST

的正文部分中编写表达式

感谢任何 information/assistance。

是的,你可以做到。最简单的方法是将 body 设置为 Object 然后放入结构化的 json,类似于:

{
  "userinfo": {
    "username": "${user.username}",
    "name": "${user.personalname}",
    "favoritecolor": "${user.favcolor}",
    "profileupdated":"${dialog.userprofileuptodate}"
  }
}

我想弄清楚如何在 LG 的自适应表达式中设置它,然后能够用类似的东西引用它:

# APIBodyTemplate()
-```
{
  "userinfo": {
    "username": "${user.username}",
    "name": "${user.personalname}",
    "favoritecolor": "${user.favcolor}",
    "profileupdated":"${dialog.userprofileuptodate}"
  }
}
```

然后在 body 字段的表达式中使用如下内容: =json(APIBodyTemplate()),但这还不是很有效。可能是一个错误。当我有更多信息时,我会更新。