You need to enable JavaScript to run this app. 如何通过Google App Script调用Chat API为Google Chat房间(非群组)添加用户
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google App Script调用Chat API为Google Chat房间(非群组)添加用户

解决方案

为什么你之前的方案失效

Google Chat入站webhook仅支持@已加入当前房间的用户,未加入用户的提及标记会被接口直接过滤,不会触发自动加人逻辑,这个是官方的功能限制,所以该思路无法落地。

可行方案:直接调用Google Chat API添加成员

你可以通过Google Chat API的memberships.create接口直接向目标房间添加域内用户,无需发送@消息,完全满足你的需求。

前置准备

  • 你的账号需要具备Google Workspace管理员权限,同时是目标Chat房间的管理员/成员
  • 在App Script项目的「项目设置」中勾选「在appsscript.json清单中显示高级服务」,然后在清单中添加Chat API的OAuth授权范围:https://www.googleapis.com/auth/chat.memberships
  • 开启App Script的Admin SDK和Chat API高级服务

优化后代码示例

// 替换为你的实际域名
const DOMAIN = 'domain.xyz';
// 替换为目标Chat房间的ID
const TARGET_SPACE_ID = 'xxxxxx';

// 处理新用户加入组织的触发事件,也可以手动调用runBatchAdd()批量加存量用户
function onNewUserAdded(event) {
  const newUserEmail = event.primaryEmail;
  addUserToChatSpace(newUserEmail);
}

// 批量添加存量域内用户到房间
function runBatchAdd() {
  let pageToken;
  do {
    const page = AdminDirectory.Users.list({
      domain: DOMAIN,
      maxResults: 50,
      pageToken: pageToken
    });
    if (page.users) {
      page.users.forEach(user => {
        addUserToChatSpace(user.primaryEmail);
        // 加1秒延迟避免触发API限流
        Utilities.sleep(1000);
        Logger.log(`已添加用户:${user.name.fullName} <${user.primaryEmail}>`);
      });
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}

// 单个用户添加到Chat房间核心方法
function addUserToChatSpace(userEmail) {
  const apiUrl = `https://chat.googleapis.com/v1/spaces/${TARGET_SPACE_ID}/members`;
  const payload = {
    member: {
      name: `users/${userEmail}`
    }
  };
  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: `Bearer ${ScriptApp.getOAuthToken()}`
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };
  const response = UrlFetchApp.fetch(apiUrl, options);
  if (response.getResponseCode() !== 200) {
    Logger.log(`添加用户${userEmail}失败:${response.getContentText()}`);
  }
}

注意事项

  • 如果要实现新用户自动加人,需要在Google Workspace管理员后台配置事件触发器,将onNewUserAdded函数绑定到「用户创建」事件即可
  • 不要调整批量添加的频率,避免触发Chat API的限流规则
  • 如果目标房间为公开房间,域内用户加入后默认不会收到提醒,不会打扰用户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 00:06:07