如何使用Microsoft Bot Framework从我的Bot显示欢迎消息
我想在有人连接我的机器人时显示欢迎信息。 我在github上使用了demo-ContosoFlowers示例中的技术( https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/demo-ContosoFlowers ),它在Bot框架模拟器中运行良好,但不是在Skype或Facebook Messenger中。 具体来说,MessageController.HandleSystemMessage中的此代码不会触发:
else if (message.Type == ActivityTypes.ConversationUpdate) { if (message.MembersAdded.Any(o => o.Id == message.Recipient.Id)) { var reply = message.CreateReply(Resources.RootDialog_Welcome_Message); ConnectorClient connector = new ConnectorClient(new Uri(message.ServiceUrl)); await connector.Conversations.ReplyToActivityAsync(reply); } }
有谁知道如何正确地做到这一点?
我今天也尝试了ContosoFlowers演示。 我遇到了您描述的相同行为:在模拟器中,ConversationUpdate代码被触发但在Skype中却没有。 但是,我确实注意到ContactRelationUpdate活动类型在Skype中触发(我还没试过Facebook Messenger)。 如果您的目标是在有人“连接”到您的机器人时显示欢迎消息,您可以尝试使用ContactRelationUpdate活动类型,如下所示:
else if (message.Type == ActivityTypes.ContactRelationUpdate) { if(message.Action == "add") { var reply = message.CreateReply("WELCOME!!!"); ConnectorClient connector = new ConnectorClient(new Uri(message.ServiceUrl)); await connector.Conversations.ReplyToActivityAsync(reply); } }
创建一个类,并在你的fb回调url中有这个。 FacebookProfile是我的class级,在通话结束后保存姓名和其他信息。
上述就是C#学习教程:如何使用Microsoft Bot Framework从我的Bot显示欢迎消息分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public static async Task GetFacebookProfile(string accessToken) { var uri = GetUri("https://graph.facebook.com/v2.6/me", Tuple.Create("fields", "name,email,id,first_name,last_name"), Tuple.Create("access_token", accessToken)); var res = await FacebookRequest (uri); return res; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1002397.html