背景
在某个 Web 应用程序中请求了一个功能,用于将 Web 应用程序上的事件通知业务 SNS,我们决定研究其可行性。
目标是 Slack 和 Teams。
Slack有很多实现例子,可行性比较容易确认。
另一方面,团队的信息很少,必须面对原始文档的繁重。
最后,只有 Teams 被推迟了,但由于这是一件大事,我将总结一下我的发现。
非团队与团队
除了团队
在 Teams 以外的通用 SNS 中实现此要求时,流程将是这样的。
(*这是一个大致表达处理流程的图,不是很严格的图。)
对于团队
Teams 与其他 SNS 的不同之处在于“机器人”的概念。
Teams 有“Bot Framework”的概念,Web 应用程序开发人员正在使用 Node.js 编写 Bot 行为。
此外,您需要为实现的机器人构建 API 服务器。
(原文档中介绍过要在AzureAD上构建,但好像可以在其他平台上构建?)
(*这是一个大致表达处理流程的图表,并不是一个非常严格的图表。)
构建过程(直到本地)
下面的印象和我这次想做的很接近,所以我模仿了这个。
https://docs.microsoft.com/en-us/microsoftteams/platform/sbs-gs-notificationbot?tabs=vscode
1.准备开发环境:安装Teams Toolkit
准备开发环境 > 安装 Teams Toolkit
在 VSCode 中安装扩展。
安装完成后会启动教程,不过我会按照上一篇的,所以略过。2. 创建免费的 Teams 沙盒环境
设置您的 Teams 开发租户 > 创建免费的 Teams 开发人员租户(可选)
Slack 在实际工作空间上开发,但 Teams 和 Office365 有沙盒环境机制。
创建 M365 测试租户,点击“立即加入”。
输入所需信息,然后单击“下一步”。
检查你使用什么。
在本文中,我只检查了“Microsoft Teams”。将显示用于创建沙盒环境的初始数据和管理员用户的向导,因此请遵循它。
选择“即时沙盒”和“下一步”输入管理员用户名和密码,点击“继续”
注册您的电话号码并“设置”
沙盒环境由上述过程启动。
点击“转到订阅”,移动到相应沙盒的 Office365 主屏幕。单击团队。
(可能过渡不好1)我把它放在团队中。我看到它包含测试数据。
3.新建bot节点项目
构建通知机器人
打开 Teams Toolkit 扩展并选择创建新的 Teams 应用。
选择如下。
・Javascript/TypeScript
·保存位置
选择每个。为应用程序输入合适的名称。
将创建一个项目,因此打开它。
打开团队工具包。
执行“Teams Toolkit > ACCOUNTS > Sign in to M365”并如下所示。*如果“侧载未启用”这里执行以下步骤
登录后,启动调试器。
执行“调试(Chrome)”并等待一段时间后,将启动 Chrome 窗口。
如果出现提示,请输入您的登录名。
出现以下屏幕时,使用“添加”添加应用程序。在主机上
curl -X POST http://localhost:3978/api/notification执行,如果消息在 Teams 上发送,则成功,如下图所示。
接下来,让我们向特定用户发送消息。
如下更改机器人源。
(有焦虑,因为用户识别非常强迫)src/bot/index.jsserver.post( "/api/notification", ..., async (req, res) => { for (const target of await bot.notification.installations()) { if (target.type !== 'Person') { console.log('target.type mismatch') continue } if (target.conversationReference.user.id !== req.body.user_id) { console.log('user_id mismatch') continue } await target.sendAdaptiveCard( AdaptiveCards.declare<CardData>(notificationTemplate).render({ title: req.body.title, appName: '', // TODO: 隠し方調査(カードの種類変える?) description: req.body.description, notificationUrl: '', // TODO: 隠し方調査(カードの種類変える?) }) );在主机上
curl -X POST \ -d user_id=xxx \ -d title="Sample Service" \ -d description="豊後 国博 様より [自宅インテリアを3D画像でコーディネートするサービス「インテリアート」](https://example.com/hoge)にコメント" \ http://localhost:3978/api/notification将向 Teams 发送消息,如下所示。
※user_id是图形浏览器可以取自顺便说一句,当你完成这个Teams 开发人员门户中的应用程序屏幕我认为添加了“mynotificationbot-local-debug”。
这是一个您在本地表演时不必注意的屏幕,但您似乎需要对其进行操作才能将其反映在舞台制作中。概括
这一次,我们在本地环境中启动了 TeamsBot,并实现了使用 curl 发送任意通知消息,但仍然存在以下未解决的问题。
我希望将来能够调查这些点。・识别用户的处理
比较勉强,所以本文介绍的政策是否合适,还是个问号。・应用审查
与其他 OAuth 授权一样,在生产中反映时似乎需要由 Microsoft 审查。・它在远程环境中是否正常工作?
在本文介绍的本地环境中,TeamsBotAPI 服务器在本地运行,ngrok 与 Teams 配合良好。
其实搭建服务器是有必要的,在文档中介绍了作为在AzureAD上搭建的一种方法,但是需要确认是否是可以在AWS上搭建的属性。
可能是切换登录账号效果不好,所以我操作的时候是用原本登录的非沙箱账号进入的。您可能需要重新登录。↩
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308627986.html