botframework - 以编程方式将机器人 (ms-botbuilder) 添加到 MS Teams 团队/频道
问题描述
我正在寻找一种将机器人添加到该机器人刚刚创建的团队的方法。
- 能够通过 bot JS-SDK 通过 MS Graph 创建一个组
graphClient.api("/groups").post({
displayName: "Some Name",
mailNickname: "Name without Spaces",
description: "Some Description",
visibility: "Private",
groupTypes: ["Unified"],
mailEnabled: true,
securityEnabled: false,
"members@odata.bind": members, // array of url strings of members
"owners@odata.bind": owners,
});
members
和owners
代表用户的字符串数组:
https://graph.microsoft.com/v1.0/users/{user-id}
. /users
通过搜索找到它们
- 然后将一个团队添加到该组(来源:https ://docs.microsoft.com/en-us/graph/api/team-put-teams?view=graph-rest-beta&tabs=javascript ),如下所示:
graphClient.api(`/groups/${group-id}/team`).put({});
- 和渠道 -
graphClient.api(`/teams/${group-id}/channels`).post(channel);
找不到将机器人添加到刚刚创建的团队或频道的方法。也许有一种方法可以找到它 guid 或某种 app-id 并将其添加到组中?
解决方案
所以请记住,Bot 不是普通用户,它是一个应用程序。因此,要将其添加到团队中,您将针对图表使用“将应用程序添加到团队”操作。为此,您需要使用列出 Microsoft Teams 应用程序目录中已发布应用程序中的应用程序 ID 。
完成此操作后,您的机器人将成为整个团队的一部分,并且可以从任何频道访问。因此,在将机器人安装到团队后,您不需要将其本身添加到频道(您可以看到这一点,因为从“频道”中删除机器人的唯一方法是从应用程序中删除它整个团队的标签)。在这方面,它有点像用户——将用户添加到团队可以让他们访问所有频道。但是,如果您的应用也包含选项卡,则该选项卡可以自动添加到单个频道 - 请参阅将选项卡添加到频道。
推荐阅读
- javascript - 如何在nodejs中提供文件之前保存变量
- c++ - Is it possible to pass one argument to macro and get out two?
- node.js - Node Express 获取传递自定义标头的请求
- php - 在 Woocommerce 3 中使用 CRUD 方法以编程方式创建产品
- python - Function and loop debugging
- java - Javafx - Concurrently reusing javafx Service<>
- angular - 调度多个条件动作
- r - 如何在不打开 R 或 RStudio 的情况下运行 R 脚本?
- javascript - How to handle mutliple responses using Promise.all if one promise fails?
- java - 尝试使用枚举中的值对其进行初始化时,我有一个空数组列表