如何通过Microsoft Graph Rest API从URL获取单条MS Teams消息
获取Teams消息URL对应的ChatMessage(Microsoft Graph API)
目前Microsoft Graph确实没有提供直接传入Teams消息URL来获取对应ChatMessage的API端点,你需要先拆解URL中的关键参数,再调用对应的端点来获取消息。
步骤1:拆解Teams消息URL
以你提供的URL示例https://teams.microsoft.com/messages/19:xzyys.......@thread.tacv2/123456789?tenantId=....为例,提取以下两个核心参数:
- Chat ID:
19:xzyys.......@thread.tacv2(URL中/messages/之后、第二个/之前的部分) - Message ID:
123456789(第二个/之后、?之前的部分)
步骤2:调用对应的Graph API端点
根据消息所在的场景,选择对应的API:
- 如果是一对一聊天或群组聊天中的消息,使用以下端点:
GET https://graph.microsoft.com/v1.0/chats/{chat-id}/messages/{message-id} - 如果是团队频道中的消息(URL格式通常为
https://teams.microsoft.com/l/message/{channel-id}/{message-id}?groupId={group-id}&tenantId=...),则需要提取groupId和channel-id,使用以下端点:GET https://graph.microsoft.com/v1.0/teams/{group-id}/channels/{channel-id}/messages/{message-id}
权限要求
根据你的使用场景(委托权限/应用权限),需要配置对应的权限:
- 聊天消息:
Chat.Read(只读)或Chat.ReadWrite(读写) - 频道消息:
ChannelMessage.Read.All(应用权限)或Group.Read.All/ChannelMessage.Read(委托权限)
示例请求(聊天消息)
假设Chat ID为19:abc123@thread.tacv2,Message ID为987654321,请求如下:
GET https://graph.microsoft.com/v1.0/chats/19:abc123@thread.tacv2/messages/987654321 Authorization: Bearer {access-token}
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

