使用 API 列出 MS Teams 'Team' 中的频道名称以及每个频道的关联 'incoming-webhooks' url

Use API to list the channel names in an MS Teams 'Team' WITH the associated 'incoming-webhooks' url for each one

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

因此,我正在寻找一种方法来枚举给定 'Team' 中的频道列表并为每个频道检索 'incoming-webhook' 连接器 url。

我找不到执行此操作的方法。

你应该做一些 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 获取团队中的频道列表,但无法获取每个频道中添加的 Webhook URL。