面向Facebook Messenger的Microsoft Bot Framework附件

时间:2016-05-04 22:51:16

标签: node.js botframework facebook-messenger

Microsoft Bot Framework messages with buttons in Facebook Messenger

我的问题与上面提到的问题有关。我正在使用不使用bot builder sdk的node.js编写机器人。我手动返回ms bot连接器服务的兼容响应。这对于文本响应工作正常,但我希望返回更复杂的响应,例如可以使用messenger返回的按钮/轮播。基于我上面提到的问题,我猜测了格式并添加了以下内容:

response.attachments = [ { "Title": "Choose One: ", "Actions": [{ "Title": "Postback!", "Message": "Postback from button" }, { "Title": "Postback2!", "Message": "Postback2 from button" }] } ];

顶级标题似乎什么都不做,但操作正确呈现为回发类型按钮(它们将消息作为回发内容发送)。使用messenger,您还可以选择返回基于URL的按钮和图像URL。

据我所知,使用节点机器人构建器sdk返回附件没有文档。如果我只是用sdk写机器人以获得响应格式。

所以我的问题是,是否有人知道如何正确地将回发和基于url的按钮返回到bot连接器服务,包括附带的图像,有或没有bot builder sdk?

2016年5月5日更新

所以我找到了下面的链接,你可以看到附件属性的定义:

http://docs.botframework.com/sdkreference/nodejs/interfaces/_botbuilder_d_.imessage.html

如果您按照IAttachment规范进行操作,它会让我想知道上面的代码是如何/为何起作用的?作为对这种格式的测试,我在下面写道:

    var att = {};
    att.content = "I am content";
    att.contentType = "text/plain";
    att.contentUrl = "http://www.google.com";
    att.fallbackText = "I am fallback text";
    att.text  = "I am text";
    att.thumbnailUrl = "https://pbs.twimg.com/profile_images/638751551457103872/KN-NzuRl.png";
    att.title  ="I am title";
    att.titleLink = "http://yahoo.com";

现在处于松弛状态,我得到了一个相当不错的输出:enter image description here

但是在Messenger中我得到了"服务错误:值不能为空。参数名称:source"

1 个答案:

答案 0 :(得分:3)

我找到了我需要的信息。不确定它当时是否尚未发布,或者我是否只是在机器人构建器文档中进行搜索,但是下面的内容都非常详细。

http://docs.botframework.com/connector/message-actions/#navtitle

对于某些集成,您必须稍微调整一下您的消息,例如Skype似乎并不支持附件。