如何向botframework消息添加额外的有效负载(DirectLine)

时间:2017-08-03 09:18:01

标签: botframework direct-line-botframework

我正在使用MS Bot Framework开发bot。 我们也有这个机器人的原生移动应用程序客户端,所以我们唯一的选择是通过套接字使用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错了。

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

1 个答案:

答案 0 :(得分:2)

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

在Direct Line v3.0之前,不支持附件,因此Direct Line示例使用sourceEvent属性发送它们。您可以在此code snapshot中看到。

enter image description here