游戏门户网站开发资源,邢台做网站公司排名,小程序制作教程视频,昆明网站的优化说到 Microsoft Bot Framework 其实微软发布了已经有一段时间了#xff0c;有很多朋友可能还不太了解#xff0c;微软Bot的功能今天我给大家简单的介绍一下#xff0c;Bot Framework的开发基础以及如何使用Bot Framework和我们的一个现有的三方客服#xff08;例如一个微信… 说到 Microsoft Bot Framework 其实微软发布了已经有一段时间了有很多朋友可能还不太了解微软Bot的功能今天我给大家简单的介绍一下Bot Framework的开发基础以及如何使用Bot Framework和我们的一个现有的三方客服例如一个微信的公共号集成起来。 首先说到Bot大家的第一反应就是机器人但是微软的Bot不是指的传统意义上的一个基于硬件的机器人而是一个类似于在线客服的服务框架。这个框架很直接的价值在于 Channel的概念例如我们同时需要智能机器人用在一个HTML页面上以及Skype或者Email客服如果你使用微软 Bot Framework 框架开发这个智能客服那么开发者可用享用Bot Framework Channel带来的便捷开发者只需要一次开发客服问题的逻辑然后在 Bot Framework 的 portal 上进行简单的Channel配置就可以将这个智能客服 enable 到各种平台或者将一段iframe的HTML的代码嵌入网页中就可以实现多客户端的部署。当然也可以部署到微信公共号中下图就是目前微软 Bot Framework所支持的所有的channel当然除了这些已有的channel我们还可也连接到我们已有的应用中这种做法我后面也会介绍。 2. Bot Framework 是一个上手非常简单的框架基于ASP.NET MVC 的基础上简单的说就是开发一个简单的Web服务。开发步骤也很简单 2.1 首先要先下载一个Bot Framework的开发模板for visualstudio和 模拟器 下载链接 https://docs.botframework.com/en-us/downloads/ 配置 https://docs.botframework.com/en-us/csharp/builder/sdkreference/gettingstarted.html 安装模板很简单就是将一个zip包copy到vs的模板目录下就可以在VS里面创建Bot项目了 随后在 MessagesController 中可以找到 Post方法这里判断一下 activity.Type 如果是 Message 类型就可以通过Text属性获取到用户输入的信息随后经过您的程序对用户输入的内容的理解与分析这里也可以使用微软的LUIS服务进行语义理解然后通过ConnectorClient的Conversations.ReplyToActivityAsync 方法进行回复即可 public async TaskHttpResponseMessage Post([FromBody]Activity activity) { if (activity.Type ActivityTypes.Message) { ConnectorClient connector new ConnectorClient(new Uri(activity.ServiceUrl)); // calculate something for us to return int length (activity.Text ?? string.Empty).Length; // return our reply to the user Activity reply activity.CreateReply($You sent {activity.Text} which was {length} characters); await connector.Conversations.ReplyToActivityAsync(reply); } else { HandleSystemMessage(activity); } var response Request.CreateResponse(HttpStatusCode.OK); return response; } 随后您可以在您的IIS上或者Windows Azure 上的 Web App 2.2 随后我们需要在微软Bot Framework的portal 上注册我们的Bot 链接https://dev.botframework.com/bots/new 用户注册过程我就略过了 首先看到的是您可以给这个智能机器人上传一个图标这个图标用于和用户对话或者Skype中的头像名称和描述都写上非常描述性的内容即可后面还可以修改Bot handle 是服务的名称设置后以后就不可修改了。后面的内容您自己照实填就好了。 endpoint 就是你的bot将来要部署的服务地址也就是MS Bot Framework 要转发消息的地址现在最新的3.0版本中需要 Microsoft App ID 需要您登陆MSA 生成一个APP ID就可以了。完成其他信息填写后点击注册按钮。 最后您需要从新配置Bot Framework 的这个website的web.config文件中的 MicrosoftAppId 和 MicrosoftAppPassword 这两个Key的value您都可以在Bot Portal 中找到 appSettings!-- update these with your BotId, Microsoft App Id and your Microsoft App Password--add keyBotId valueYourBotId /add keyMicrosoftAppId value /add keyMicrosoftAppPassword value //appSettings 随后您可以在Bot的设置页面配置要打开的channel这里我打算做一个HTML的聊天窗口和一个微信的公共号所以我打开了一个Web chat是用来做HTML做聊天窗口的Direct Line 用来对接微信公共号。 通过点击 Web Chat的 Edit编辑按钮来编辑和获取嵌入HTML中的代码和Secret ID注意 需要在HTML代码中把YOUR_SECRET_HERE替换成真正的 Secret ID 这样在打开您部署的网站就可以看到您的Bot窗口通过iframe的CSS就可以控制窗口的大小和位置。 iframe srchttps://webchat.botframework.com/embed/BoBotTest?sYOUR_SECRET_HERE/iframe 接着我给大家介绍一下日和微信集成的方法介绍之前推荐大家先了解一下微信公共号的基础知识我这里是直接使用的 http://www.weixinsdk.net/ 微信SDK的基础上开发的。 在接收到微信转发的消息的时候直接通过 Direct Line 转发到MS Bot上当然如果您已经有自己的微信公共号/企业号的微信后台服务器您也可以 基于现有服务进行消息转发 或者您的微信公共号后台 本身就是一个ASP.NET MVC架构的服务您也可以直接集成这个Bot Framework 。 今天在这里我就介绍一下基于现有微信后台服务通过 Direct Line 转发到MS Bot上的场景。 如果您已经了解过微信公共号后台机制后肯定会想到其实逻辑很简单就是在微信后台收到消息以后转发消息和接收MS Bot消息的一个过程。 微信处理消息的机制非常简单如下我这里使用了一个MSBot的一个PostMessage方法来调用远程Bot的消息 代码如下 switch (message.Type) { case WeixinMessageType.Text://文字消息 { var msgId message.Body.MsgId.Value.ToString(); string userMessage message.Body.Content.Value; string BotMessage await MSBot.PostMessage(userMessage); result ReplayPassiveMessageAPI.RepayText(openId, myUserName, BotMessage); } break; 那么只要在您的项目中实现下面的这个MSBot的Class即可这里我把PostMessage的方法贴出来具体项目请下载我在Github上的源码体验。 public async static Taskstring PostMessage(string message) { HttpClient client; HttpResponseMessage response; bool IsReplyReceived false; string ReceivedString null; client new HttpClient(); client.BaseAddress new Uri(https://directline.botframework.com/api/conversations/); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(application/json)); client.DefaultRequestHeaders.Authorization new AuthenticationHeaderValue(BotConnector, aDyJxnUSx30.cwA.WOg.4DzXtwItzBC6jyUCxHXG8fLKcgdx2zZYf2BkkfW5Lpc); response await client.GetAsync(/api/tokens/); if (response.IsSuccessStatusCode) { var conversation new Conversation(); response await client.PostAsJsonAsync(/api/conversations/, conversation); //response await client.PostAsync(/api/conversations/, null); if (response.IsSuccessStatusCode) { Conversation ConversationInfo response.Content.ReadAsAsync(typeof(Conversation)).Result as Conversation; string conversationUrl ConversationInfo.conversationId /messages/; Message msg new Message() { text message }; response await client.PostAsJsonAsync(conversationUrl, msg); if (response.IsSuccessStatusCode) { response await client.GetAsync(conversationUrl); if (response.IsSuccessStatusCode) { MessageSet BotMessage response.Content.ReadAsAsync(typeof(MessageSet)).Result as MessageSet; ReceivedString BotMessage.messages[1].text; IsReplyReceived true; } } } } return ReceivedString; } 这里要注意的是需要设置AuthenticationHeaderValue这个属性这个属性值是对应Direct Line Secret的Key值的。 随后我们就可以实现在微信公共号上通过Direct Line 链接到 Microsoft Bot Framwork的场景了。 这样就实现了使用一个MS Bot Framework 同时服务于微信公共号和HTML的Web服务希望可以帮助到大家如果需要我的项目代码请点击“阅读原文” 到博客文章进入下载。 大家有兴趣更深入的交流可以在新浪微博上联系 王博_Nick 原文链接http://www.cnblogs.com/sonic1abc/p/5941442.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注