使用FormBuilder时如何为Facebook设置ChannelData?

时间:2018-01-08 16:12:22

标签: c# facebook botframework facebook-messenger

如果我发送正常消息,我可以将ChannalData添加到消息中:

IMessageActivity message = Activity.CreateMessageActivity();
message.ChannelData = JObject.Parse("{'messaging_type':'RESPONSE'}");

但如果我使用的是FormBuilder,

return new FormBuilder<SandwichOrder>()
    .Message("Welcome to the sandwich order bot!")
    .
    ...
.Build();

我不知道如何添加ChannelData。

在Facebook开发文档中找到了以下信息,这就是我问的原因。

  

违反变更通知   从2018年5月7日开始,将需要messaging_type属性,并且不发送没有它的所有消息。

1 个答案:

答案 0 :(得分:2)

您可以通过在 OnCompletion 委托中实现它来实现这一目标。在表单完成时触发。

const getActivities = function() {
    return getAll(addresses).then(p => { // <--- here
        return new Promise((resolve, reject) => {
            fs.readFile('all.json', 'utf8', (err, contents) => {
                let all = [];
                let activities = JSON.parse(contents);
                activities.forEach(activity => { all.push(activity); });
                resolve(all);
            });
        });
    });
}