【发布时间】:2017-08-03 18:24:14
【问题描述】:
我正在使用 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 错误。
向我的机器人消息添加自定义数据的最佳方法是什么?是否有任何大小限制,例如我可以传递多少对象?
【问题讨论】:
-
我相信
entities是为人工智能返回的实体设计的。您或许可以改用channelData? -
@stuartd 谢谢我能够将我的数据作为 channelData 发送,但后来我检查了 Azure 中的 Log Stream 并发现了这条消息
Message.setChannelData() is deprecated. Use Message.sourceEvent() instead.
标签: botframework direct-line-botframework