1

我正在使用 MS Bot Framework 开发机器人。我们也有这个机器人的原生移动应用客户端,所以我们唯一的选择是通过套接字使用 DirectLine API。

我想知道是否可以将自定义有效负载添加到机器人发送给客户端的消息中。

假设我想返回一条包含 20 个位置的消息,每个位置都是一个带有图像、标题、副标题和文本的 ThumbnailCard 附件,我还想添加更多信息,例如lat, lon, open time, close time etc.最好的方法是什么,这可能吗?

我正在为我的机器人使用 NodeJS。我的 IDE 告诉我,目前每个 ThumbnailCard 附件只有这些选项可用:

  • 文本
  • 标题
  • 字幕
  • 图片
  • 轻敲

以前我使用这样的方法: message = new builder.Message(session) .attachments(thumbnails) .attachmentLayout('carousel') .entities([ { name: 'Location 1', lat: 10.11, lon: 10.11 }, { name: 'Mitul', lat: 10.11, lon: 10.11 } ]) .text('Select Location');

但是后来我发现,如果我在实体中提供 1 或 2 个项目,那么我会在我的应用程序中收到它,但是如果有 5-10 个具有 10-30 个属性的对象,那么我根本看不到客户端中的实体。我想我在这里用entities错了。

将自定义数据添加到我的机器人消息的最佳方法是什么,是否有任何大小限制,例如我可以传递多少对象?

4

1 回答 1

2

您可以尝试使用sourceEvent消息的属性。它通常用于发送特定于/本机的有效负载。

在 Direct Line v3.0 之前,不支持附件,因此 Direct Line 示例使用该sourceEvent属性来发送它们。您可以在此代码快照中看到这一点。

在此处输入图像描述

于 2017-08-03T10:24:14.227 回答