是否有可能在botframework中创建CardAction(按钮),该按钮用作Facebook Messenger中的分享按钮?Facebook Messenger中的分享按钮
3
A
回答
2
由于“分享”按钮特定于Facebook,并且不是所有通道都共有,因此BotBuilder中没有用于执行此操作的代码。
然而,它可以通过使用ChannelData
(C#
)/ sourceEvent
(Node.js
)来实现。
请参阅this post以了解频道数据信息的外观。另外,this sample显示如何使用ChannelData
功能。
最后,这里是关于ChannelData的文档。
2
捎带关闭的埃塞基耶尔通过提供的信息,
我已经创建了一个利用ChannelData
财产超过透过Facebook Messenger发送一个分享按钮工作C#机器人。
的Models
目录包含了所有的类定义将充当合适的JSON格式的透过Facebook Messenger分享按钮as is documented here.
然后你只需使用所有的创建一个新的对象你结合模型类,并将其分配到一个新的答复的ChannelData
财产在对话框中,如下所示:
从ShareButtonDialog.cs
:
namespace Azure_Bot_Generic_CSharp
{
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Microsoft.Bot.Connector;
using Microsoft.Bot.Builder.Dialogs;
using Models;
[Serializable]
public class ShareButtonDialog : IDialog<object>
{
public async Task StartAsync(IDialogContext context)
{
context.Wait(this.MessageReceivedAsync);
}
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
{
var message = await argument;
//create a reply message
var reply = context.MakeMessage();
//create a channel data object to act as a facebook share button
reply.ChannelData = new FacebookChannelData()
{
Attachment = new FacebookAttachment()
{
Payload = new FacebookGenericTemplate()
{
Elements = new object[]
{
new FacebookGenericTemplateContent()
{
Buttons = new[]
{
new FacebookShareButton()
}
}
}
}
}
};
//send message
await context.PostAsync(reply);
var reply2 = context.MakeMessage();
reply2.Text = "This is a message after the Share Button template.";
await context.PostAsync(reply2);
//wait for more messages to be sent here
context.Wait(MessageReceivedAsync);
}
}
}
这将产生所需的输出:
请注意,如果您打算使用,您将需要填写在Web.config文件中自己的机器人应用程序ID和秘密项目。
+0
如果我想共享纯文本信息而不是卡片,我可以添加此任何想法? – PirateApp
相关问题
- 1. Facebook Messenger Bot - 分享按钮
- 2. facebook分享按钮
- 3. Facebook分享按钮
- 4. Facebook分享按钮
- 5. Facebook的Like按钮的分享按钮
- 6. 与facebook messenger分享文字?
- 7. Facebook Messenger Messenger持久菜单按钮
- 8. Facebook messenger bot入门按钮
- 9. Facebook分享按钮功能
- 10. Unity facebook分享按钮
- 11. 隐藏div中的Facebook分享按钮
- 12. 在Node.js的Facebook chatbot中分享按钮
- 13. asp.net中的Facebook和Twitter分享按钮
- 14. 中心对齐Facebook分享按钮div
- 15. GameScene中的分享按钮
- 16. Facebook Messenger Bot - 上传图片的按钮
- 17. Android:分享到Facebook Messenger错误
- 18. 自定义Facebook的分享按钮
- 19. 网站的Facebook分享按钮
- 20. Java swing上的Facebook分享按钮
- 21. Facebook的分享按钮返回错误
- 22. 带meta标签的Facebook分享按钮
- 23. Facebook的分享按钮问题
- 24. swift spritekit Facebook的分享按钮
- 25. Facebook的自定义分享按钮
- 26. facebook分享按钮的不同网址
- 27. Facebook的分享按钮返回空url
- 28. Twitter分享按钮
- 29. 检测Facebook的按钮和Twitter分享按钮的onload?
- 30. Facebook分享按钮编码问题
所有这些来源都知道给我,所以一般。为了改善您的响应,请提供一个使用C#中的ChannelData实现共享按钮的链接。作为回应会很有帮助。 – OmG
我不记得在C#中实现Share按钮的示例,但它可以像从链接中的node.js示例获取代码一样简单,并将其移植到C#中...我目前没有带宽为你写代码;但是我提供的信息应该是非常直接的 –
事实上,这在实践中并不简单!当你实现这个示例时,它会非常有帮助,可能会发现它不会直截了当! – OmG