无法通过Gmail API获取Google Chat消息的问题求助
Gmail API获取Google Chat直连消息失效的原因及解决方案
问题原因
- 原通过Gmail API的
CHAT标签获取Chat消息的方式,本质是Google的非预期功能(Bug),2022年12月Google完成了该Bug的修复,导致此方式彻底失效。 - Google调整了Chat的架构,直连消息(一对一/小范围群聊)不再同步到Gmail系统中,因此Gmail API无法再访问这类消息,同时Gmail内
in: chats的搜索也无法返回2022年12月10日后的相关内容。
解决方案
正确使用Google Chat API获取直连消息
Google Chat API并非只能获取空间消息,通过指定对话类型参数可获取直连消息,具体步骤如下:
- 获取直连对话列表
调用接口:GET https://chat.googleapis.com/v1/users/me/conversations
添加请求参数筛选对话类型:- 一对一直连对话:
conversationType=DIRECT_MESSAGE - 小群聊对话:
conversationType=GROUP_CHAT
- 一对一直连对话:
- 获取指定对话内的消息
调用接口:GET https://chat.googleapis.com/v1/users/me/conversations/{conversationId}/messages
替换{conversationId}为上一步获取到的对话ID即可获取对应对话的历史消息。
权限配置要求
- 为应用申请
chat.messages.readonly(只读)或chat.messages(读写)权限,确保授权范围覆盖用户直连消息的访问权限。 - 在OAuth 2.0授权流程中,需明确请求上述权限,避免因权限不足导致无法拉取消息。
内容的提问来源于stack exchange,提问作者茂泉和毅
相关产品推荐
相关产品推荐

