Skip to content

Google Chat

Google Chat 适配器基于当前官方稳定 REST v1、Chat interaction event 与 Google Workspace Events API。一个可嵌入的 GoogleChatClient 统一负责鉴权、外部数据校验、去重和事件投影;它不会自行监听端口。

能力映射

Google ChatOneBots
Message create/get/list/patch/delete消息发送、查询、历史、编辑、删除
Space list/get/patch群列表、群资料、群名称
Membership list/create/delete成员查询、邀请、移除、离开
Reaction create/delete消息 reaction
Attachment upload/download用户 OAuth upload_file + typed downloadMedia()
Space/thread read statemessage_status 事件与用户身份 mark_message_as_read
Interaction cards/commands/dialogscustom canonical 事件 + 无损 raw_event
Workspace message/reaction/membership/space events对应 canonical notice/message

Google Chat 没有通用的 users.getget_user_info 只返回已在 interaction、message 或 membership 中严格解析并缓存的用户,缺少上下文时明确返回错误,不伪造资料。消息来自仅含 Space 名称的 Workspace event 时,Client 会调用 spaces.get 闭合 DIRECT_MESSAGE/群聊场景,不把未知会话猜成群聊。

原生扩展动作

适配器导出闭合的 GOOGLE_CHAT_PLATFORM_ACTIONS,包括:

  • call_google_chat_api:调用安全的相对 REST v1 路径;
  • find_google_chat_direct_messagefind_google_chat_group_chats
  • setup_google_chat_spacecreate_google_chat_spacedelete_google_chat_space
  • list_google_chat_space_events
  • get_google_chat_availabilitymark_google_chat_activemark_google_chat_awaymark_google_chat_do_not_disturb
  • get_google_chat_space_read_stateget_google_chat_thread_read_state
  • list_google_chat_reactions
  • send_google_chat_rich_message:发送 cardsV2/accessoryWidgets 等原生消息体。

messagePins 和 custom emoji 当前仍属于 Google Workspace Developer Preview,因此不进入稳定具名动作;确实加入预览计划的应用可通过底层 call_google_chat_api 自行承担版本风险。

应用自行离开 Space 时使用官方 spaces/{space}/members/app 资源;用户 OAuth 的 principal_name 若用于 leave_group,应配置为可解析的 users/{id|email},不能用无法映射到 membership resource 的 users/me。上传附件用用户 OAuth;下载则通过 typed downloadMedia() 返回原始字节。

接收语义

  • Interaction HTTPS:验证 Google Chat 系统服务账号签发的 OIDC token,或验证官方自签 JWT;可同步返回 Message/dialog 响应。
  • Workspace Events + Pub/Sub push:验证订阅配置的 push service account OIDC 身份,展开 batch,并在下游处理成功后 ACK。
  • Manual:已有 Host、Pub/Sub consumer 或连接调用 ingest(rawEvent),与内置入口共用同一个 Client。

配置、OAuth scope 和 Google Cloud 操作见 Google Chat 配置