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

如何通过Google Chat Rest API获取用户在线状态(活跃/离开)

解决Google API获取联系人在线状态的问题

正确的API选择

你需要用People API或者Google Chat API,Members API是针对Chat空间成员的,不适合单个联系人的状态查询:

  • People API:适合从联系人列表中获取用户状态
  • Google Chat API:更直接针对Chat/Hangouts的用户在线状态操作

解决People API无返回结果的问题

之前调用people.get没结果,核心原因是没指定需要返回的字段——People API默认不会返回所有字段,必须明确请求presence字段:

  1. 先通过people.searchContacts接口,用对方邮箱user@gmail.com搜索获取其resourceName(格式类似people/123456789)
  2. 调用people.get时带上personFields=presence参数,示例请求:
    GET https://people.googleapis.com/v1/people/{resourceName}?personFields=presence
    
    返回结果里的presence字段会包含对方的在线状态(AVAILABLE为活跃,AWAY为离开等)

实现自身不显示活跃的效果

要达到Gmail隐身查看的效果,你需要先把自己的状态设为隐身(INVISIBLE)或者离线(OFFLINE),推荐用Google Chat API的接口:

POST https://chat.googleapis.com/v1/users/me/presence:update
Content-Type: application/json

{
  "presenceStatus": "INVISIBLE"
}

设置后,你查询对方状态时就不会显示自己为活跃状态。

注意事项

  • 要在Google Cloud Console中启用People API和Google Chat API
  • 申请OAuth 2.0权限时,需要包含contacts.readonly(读取联系人状态)和chat.users(修改自身状态)权限范围
  • 如果对方设置了隐私权限禁止他人查看状态,你将无法获取到有效结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:45:47