根据scenario。
用于使用示例消息 - 文本对其进行测试。它工作正常。
我应该通过使用按钮(回调)来实现它。
真正的问题是:
示例文字:
context.Activity.Id
"mid.$cAAOmNGtaSJ9i1_f223cprKylFOpb"
按钮点击(回调):
context.Activity.Id
"9Yw5TAcq1qr"
这是我用来发布人工支持按钮的代码:
msg.AttachmentLayout = AttachmentLayoutTypes.Carousel;
msg.Attachments = new List<Attachment>();
ThumbnailCard thumbnailCard2 = new ThumbnailCard()
{
Buttons = new List<CardAction>
{
new CardAction ()
{
Value = "Method_Support",
Type = "postBack",
Title = "Human Support"
},
},
};
msg.Attachments.Add(thumbnailCard2.ToAttachment());
await context.PostAsync(msg);
它返回activity.Id:9Yw5TAcq1qr - 正如我已经提到的那样。我无法使用该ID来查询Facebook图表api。
处理这样的场景的最佳方法是什么?
是否可以将所有传入的消息呈现为本机Facebook(样本文本)消息?
是否可以使用回调活动来调用图表api.id?
答案 0 :(得分:2)
根据我之前的回答,关于如何将Activity
从botFramework链接到Facebook的图表API中的对话中的messages
,我看了你的问题。
从我的观点来看,这个Activity.Id
值存在一个奇怪的现象,因为在Facebook的一面,所有消息都具有相同的id
格式,即使对于回调也是如此。
以下是来自Facebook Graph API的2条消息(第1条是最新的消息)的捕获:
{
"data": [{
"messages": {
"data": [
{
"id": "m_mid.$cAAC3Jml0RcBi2JK3Clcp01uu8FFe",
"message": "Human support"
},
{
"id": "m_mid.$cAAC3Jml0RcBi2I5bXlcp0kScM7af",
"message": ""
}
]
},
"id": "t_mid.$..."
}]
}
ThumbnailCard
,其中包含CardAction(type = postback,Value = Method_HumanSupport)Human support
是CardAction点击发送的内容令人惊讶的是,在机器人方面,对于这2条消息,我们为Activity.Id提供了以下值:
DWhE2C0VO79
,完全不匹配 有关信息,我的ThumbnailCard就像OP所说的那样:
var msg = context.MakeMessage();
msg.AttachmentLayout = AttachmentLayoutTypes.Carousel;
msg.Attachments = new List<Attachment>();
msg.Text = "updates & support";
ThumbnailCard thumbnailCard2 = new ThumbnailCard()
{
Buttons = new List<CardAction>
{
new CardAction ()
{
Value = "Method_HumanSupport",
Type = "postBack",
Title = "Human support"
}
}
};
我将在Bot Framework GitHub项目中添加一个问题。 编辑:已记录问题:https://github.com/Microsoft/BotBuilder/issues/2950
有几种解决方法取决于您的全局用例:您可以尝试记录&#34;正常&#34;的Activity.Id。讨论中的消息,稍后在单击回调时使用此值,或者您也可以尝试更改流程以避免在Bot Framework和Facebook Graph API之间建立此类链接。