使用API​​在MS Teams“团队”中列出频道名称,并为每个频道关联相关的“ incoming-webhooks”网址

问题描述

我正在将一些使用Webhooks的集成从Slack迁移到MS Teams。 Slack有一个方便的方法来覆盖消息在Webhook有效负载中发布到的通道名称。 MS Teams似乎会为每个频道生成一个唯一的Webhook URL。

因此,我正在寻找一种枚举给定“团队”中的频道列表并检索每个频道的“ incoming-webhook”连接器网址的方法。

我找不到办法。

解决方法

您应该执行一些API调用以推断出来。

首先,您应该让组织中的所有团队。为此,您应该致电:

GET /groups?$select=id,resourceProvisioningOptions

或者:

GET /groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')

您可以在List all teams in Microsoft Teams for an organization上详细了解它。响应的格式为:

HTTP/1.1 200 OK
Content-type: application/json
Content-length: xxx

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups","value": [
        {
            "id": "00e897b1-70ba-4cb9-9126-fd5f95c4bb78","resourceProvisioningOptions": []
        },{
            "id": "00f6e045-f884-4359-a617-d459ee626862","resourceProvisioningOptions": [
                "Team"
            ]
        }
    ]
}

然后,对于以上响应中的每个id,您应该调用以列出频道:

GET /teams/{id}/channels

您可以在List Chanels上了解有关此API的更多信息。响应将在其json中有一个名为webUrl的条目。该键的值将是您要查找的频道URL。

,

您可以使用List channels API来获取Team中的频道列表,但是无法获取每个频道中添加的Webhook URL。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...