适用于 Facebook Messenger 的 Microsoft Bot Framework 附件

Microsoft Bot Framework attachments for Facebook messenger

我的问题与上述 link 问题有关。我正在使用 node.js 编写一个不使用 bot builder sdk 的机器人。我为 ms 机器人连接器服务手动 return 兼容响应。这对于文本响应来说工作正常,但我希望 return 更复杂的响应,例如 buttons/carousel 你可以 return 使用 Messenger。根据我 link 上面的问题,我猜到了格式并添加了以下内容:

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

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

据我所知,关于 returning 附件使用 node bot builder sdk 的文档为零。如果有我会直接用sdk写bot来获取响应格式。

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

更新 05/05/2016

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

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

如果您遵循 IAttachment 规范,这让我想知道 how/why 我上面的代码是否有效?作为对该格式的测试,我写了以下内容:

    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";

现在在 slack 中我得到了一个相当不错的输出:

但是在 Messenger 中我得到 "Service Error:Value cannot be null. Parameter name: source"

我找到了我需要的信息。不确定它当时是否还没有发布,或者我是否只是在 bot builder 文档中寻找,但它在下面非常详细。

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

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