如何通过机器人真正向 Teams 中的用户发送消息

How to really send a message to a user in Teams through a bot

最近几天,我查看了数十个示例、文档、博客文章、youtube 视频(课程,我无法确定),我可以说我仍然很困惑,而且我仍然没有 Teams 机器人。 我检查过的每个例子在方法上都是不同的,现在我很确定还有很多人和我一样。

常见问题:需要 input/parameters 服务 Url、会话 ID、。 1. 你找不到对他们的解释。 2. 你找不到解释如何获得它们的地方。

我想达到的目标

我想要 Teams 上的机器人,带有 API,有 2 个参数:用户电子邮件、消息。机器人必须将消息发送给指定的用户。就是这样。

我正在寻找如何:

  1. Create/Setup 应用程序
  2. 创建实际的机器人
  3. 将应用程序安装到 Teams

我曾经创建过 Teams 对话机器人。希望我的经验对你有所帮助。

首先,download sample由微软提供。我使用 c# 创建此机器人,因此我复制了“57.teams-conversation-bot”文件夹并使用 vs studio 打开它。在这个示例中,我需要修改 appsettings.json 中的配置。我需要输入appid和apppassword。

因此下一步是在 Azure 门户中创建 Azure 广告应用程序。但是,如果您以前从未 create Bot Framework registration resource,您可以在创建 Bot Framework.By 时创建 azure 广告应用程序,现在您可以将 'Messaging endpoint' 留空。 请注意,当您创建 Azure 广告应用程序时,如果您创建该应用程序的帐户位于使用您的团队帐户的不同租户。

现在我有一个机器人框架和一个Azure广告应用,我可以修改appsettings.json,输入appId和应用密码。在 Certificates & secrets 标签中创建客户端机密时,我可以在应用概览页面中获取 appId 并获取应用密码。

现在,我需要在 Azure 门户中使用网络聊天调试我的示例(进入刚刚创建的 bot 框架,您可以在左侧面板中看到标签 'Test in web chat')。所以我需要使用 ngrok 让机器人在本地环境中访问我的代码。 运行 在 vs studio 中按 F5 的示例。打开 ngrok.exe 和 运行 命令 ngrok http -host-header=rewrite 3978。然后我可以获得 https url,复制它并粘贴到 'Messaging endpoint'。不要忘记添加“/api/messages”。

现在向机器人发送 'hello',您将获得默认结果。当你得到下图时,说明你的配置正确。

下一步是将此机器人添加到 Teams 客户端。首先,我在 Azure 门户中创建的机器人中添加团队频道。

然后我需要修改清单文件。用刚刚创建的 appId 替换“YOUR-MICROSOFT-APP-ID”。并创建 manifest.zip 文件,其中包含文件夹 TeamsAppManifest 中的三个文件。

下一步是将 zip 文件上传到 Teams 客户端。单击左下角的 'Apps' 并单击左侧面板底部的 'Upload the custom app',然后单击添加。好的,现在我得到了一个团队对话机器人。

有很多方法,部分原因是 Teams 开发仍然相对较新,部分原因是 Bot Framework(Microsoft 世界中用于构建 Bot 的工具集,包括 Teams 和其他)也经历了一些重大变化。除了各种语言选项(dotnet、node、python 等)之外。

新的 Teams Toolkit 看起来是一个不错的起点,它是 Visual Studio 和 Visual Studio 代码的插件,用于构建新的 Teams 项目(Tab、Bot、 ETC。)。看看 here for a link. It's very new though, so some rough edges, but it's aiming to be very comprehensive to get up and running quickly (does a lot of Azure registrations behind the scenes, for example). Check out the latest monthly Teams Developer call, from earlier this week, for a visual run-through: https://www.youtube.com/playlist?list=PLWZJrkeLOrbbTKzV1sQOFAXd_s0BHJDiL(本周的电话会议尚未结束,但应该很快)。