响应式网站用什么开发的,内蒙古建设厅官方网站,广告公司管理制度,网站方案书什么东西之前我有一篇文章讲了如何在azure function上开发最简单的outgoing webhook#xff0c;收到一些反馈#xff0c;建议我介绍一下如果在azure function上开发teams bot#xff0c;那这篇文章就来讲一下如何用function来快速开发bot。
我们先创建一个azure function资源#…之前我有一篇文章讲了如何在azure function上开发最简单的outgoing webhook收到一些反馈建议我介绍一下如果在azure function上开发teams bot那这篇文章就来讲一下如何用function来快速开发bot。
我们先创建一个azure function资源然后创建一个由http触发的Function。具体步骤和上次outgoing webhook的步骤类似我就不再重复。 为了调试方便我这里允许匿名访问这个function。 创建完function后我们就可以输入下面的代码
#r Newtonsoft.Jsonusing System;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Microsoft.Bot.Connector;
using Microsoft.Bot.Connector.Authentication;
using Microsoft.Bot.Schema;public static async TaskIActionResult Run(HttpRequest req, ILogger log)
{string requestBody await new StreamReader(req.Body).ReadToEndAsync();log.LogInformation(requestBody);var activity JsonConvert.DeserializeObjectActivity(requestBody);var reply activity.CreateReply(Echo: activity.Text);log.LogInformation(JsonConvert.SerializeObject(reply));MicrosoftAppCredentials.TrustServiceUrl(activity.ServiceUrl, DateTime.UtcNow.AddDays(7));var botId 2a820a1c-1111-2222-3333-e8864ad6ff54; // your bot idvar botPassword Environment.GetEnvironmentVariable(BotPassword); // your bot passwordvar connector new ConnectorClient(new Uri(activity.ServiceUrl), botId, botPassword);connector.Conversations.SendToConversationAsync(reply);return new OkResult();
}上面的代码先从http请求的request body里反序列化出 Activity 对象。
var activity JsonConvert.DeserializeObjectActivity(requestBody);然后从这个activity对象创建出回复的消息。
var reply activity.CreateReply(Echo: activity.Text);接着创建 connector 对象然后用这个对象来发送回复的消息
var connector new ConnectorClient(new Uri(activity.ServiceUrl), botId, botPassword);
connector.Conversations.SendToConversationAsync(reply);在发送回复消息之前我们需要trust teams的serive url。
MicrosoftAppCredentials.TrustServiceUrl(activity.ServiceUrl, DateTime.UtcNow.AddDays(7));当我们保存上面的代码的时候azure function 就会自动进行编译但是编译失败原因是 Microsoft.Bot.* 命名空间找不到因为我们还没有引用对应的库。我们进入 App Service Editor (目前还是preview版本)在我们的function的目录下创建一个 function.proj 文件。 function.proj 文件内容如下
Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworknetstandard2.0/TargetFramework/PropertyGroupItemGroupPackageReference IncludeMicrosoft.Bot.Schema Version4.10.3 /PackageReference IncludeMicrosoft.Bot.Connector Version4.10.3 //ItemGroup
/Project回到function后重新执行就可以成功编译执行了。
完成了function后我们就可以和普通的bot一样的在teams里创建一个bot app然后填入azure function的url就可以测试我们的bot了。 :D