回调未呈现为本机 Facebook 消息?
Callbacks not rendered as native Facebook messages?
据此。
用于使用示例消息 - 文本对其进行测试。而且效果很好。
我应该通过使用按钮(回调)来实现它。
真正的问题是:
Sample text :
context.Activity.Id
"mid.$cAAOmNGtaSJ9i1_f223cprKylFOpb"
on button click (callback) :
context.Activity.Id
"9Yw5TAcq1qr"
这是我用来 post 人工支持按钮的代码:
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);
它 returns activity.Id : 9Yw5TAcq1qr - 正如我已经提到的。我无法使用该 ID 查询 Facebook 图 api。
处理这种情况的最佳方法是什么?
是否可以将所有传入消息呈现为本机 Facebook(示例文本)消息?
是否可以使用回调的 activity.id 调用图 api?
根据我之前关于如何 link 从 botFramework 到 messages
in Conversation in Facebook's Graph API 的回答,我查看了你的问题.
分析
在我看来,这个 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(类型 = 回发,值 = Method_HumanSupport)
Human support
是点击 CardAction 时发送的内容
令人惊讶的是,在机器人端,对于这 2 条消息,我们有以下 Activity.Id 的值:
- 对于"id":"m_mid.$cAAC3Jml0RcBi2I5bXlcp0kScM7af"(我的缩略图)=> mid.$cAAC3Jml0RcBi2I5bXlcp0kScM7af,所以匹配
- 对于"id":"m_mid.$cAAC3Jml0RcBi2JK3Clcp01uu8FFe"(回调)=>
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
解决方法
有几种解决方法取决于您的全球用例:您可以尝试在讨论中记录 "normal" 消息的 Activity.Id 并稍后在您的回调被点击时使用此值,或者您也可以尝试更改流程以避免在 Bot Framework 和 Facebook Graph API.
之间产生这种 link
据此
用于使用示例消息 - 文本对其进行测试。而且效果很好。
我应该通过使用按钮(回调)来实现它。
真正的问题是:
Sample text :
context.Activity.Id
"mid.$cAAOmNGtaSJ9i1_f223cprKylFOpb"
on button click (callback) :
context.Activity.Id
"9Yw5TAcq1qr"
这是我用来 post 人工支持按钮的代码:
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);
它 returns activity.Id : 9Yw5TAcq1qr - 正如我已经提到的。我无法使用该 ID 查询 Facebook 图 api。
处理这种情况的最佳方法是什么?
是否可以将所有传入消息呈现为本机 Facebook(示例文本)消息?
是否可以使用回调的 activity.id 调用图 api?
根据我之前关于如何 link 从 botFramework 到 messages
in Conversation in Facebook's Graph API 的回答,我查看了你的问题.
分析
在我看来,这个 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(类型 = 回发,值 = Method_HumanSupport) Human support
是点击 CardAction 时发送的内容
令人惊讶的是,在机器人端,对于这 2 条消息,我们有以下 Activity.Id 的值:
- 对于"id":"m_mid.$cAAC3Jml0RcBi2I5bXlcp0kScM7af"(我的缩略图)=> mid.$cAAC3Jml0RcBi2I5bXlcp0kScM7af,所以匹配
- 对于"id":"m_mid.$cAAC3Jml0RcBi2JK3Clcp01uu8FFe"(回调)=>
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
解决方法
有几种解决方法取决于您的全球用例:您可以尝试在讨论中记录 "normal" 消息的 Activity.Id 并稍后在您的回调被点击时使用此值,或者您也可以尝试更改流程以避免在 Bot Framework 和 Facebook Graph API.
之间产生这种 link