You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Teams聊天消息订阅时遭遇ExtensionError错误求助

问题分析与解决方案

核心问题

你遇到的ExtensionError(提示“Specified method is not supported”)是因为**/me/chats这个资源路径不支持创建订阅**。Microsoft Graph的订阅API仅允许对特定的可订阅资源创建通知,而/me/chats是用于获取聊天列表的端点,不属于可订阅的消息类资源。

解决方案

要捕获Teams聊天消息的通知,需要根据你的权限类型(委派/应用)选择正确的资源路径:

1. 委派权限(当前用户上下文)

如果是在当前用户的上下文下操作,需要先获取用户参与的所有聊天ID,再为每个聊天单独创建订阅,资源路径格式为:
/me/chats/{chat-id}/messages

修正后的请求体示例:

{
    "changeType": "created",
    "notificationUrl": "https://teams.execute-api.us-east-1.amazonaws.com/dev/notification-listener",
    "lifecycleNotificationUrl": "https://teams.execute-api.us-east-1.amazonaws.com/dev/lifecycle-notification-listener",
    "resource": "/me/chats/19:xxxxxx@thread.v2/messages",
    "expirationDateTime": "2024-12-05T22:00:00Z",
    "clientState": "secretClientState",
    "latestSupportedTlsVersion": "v1_2"
}

操作步骤:

  • 调用GET /me/chats获取用户所有参与的聊天ID集合
  • 遍历每个chatId,创建对应的订阅

2. 应用权限(租户全局上下文)

如果需要捕获租户内所有聊天的消息,可使用应用权限,资源路径为:
/chats/messages

此方式需要授予应用权限ChatMessage.Read.All,请求体示例:

{
    "changeType": "created",
    "notificationUrl": "https://teams.execute-api.us-east-1.amazonaws.com/dev/notification-listener",
    "lifecycleNotificationUrl": "https://teams.execute-api.us-east-1.amazonaws.com/dev/lifecycle-notification-listener",
    "resource": "/chats/messages",
    "expirationDateTime": "2024-12-05T22:00:00Z",
    "clientState": "secretClientState",
    "latestSupportedTlsVersion": "v1_2"
}

额外检查项

  • 确保notificationUrl能正确响应Graph的订阅验证请求:当创建订阅时,Graph会向该URL发送包含validationToken的GET请求,需直接返回该token作为响应。
  • 确认已授予正确的权限:委派权限需ChatMessage.Read,应用权限需ChatMessage.Read.All,且应用权限已完成管理员同意。

内容的提问来源于stack exchange,提问作者Lucca Toledo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:14:58