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

如何从Google Sheets用户信息弹窗提取Google User ID?

提取Gmail地址对应的Google User ID到Google表格

直接通过浏览器开发者工具抓取弹窗的data-person-id不可行——这个弹窗是动态渲染的临时元素,无法通过脚本稳定捕获,且Google Sheets的前端交互逻辑不支持这种批量提取方式。推荐使用Google Apps Script + People API的方案,这是官方支持的稳定方法:

步骤1:启用People API

  1. 打开你的Google表格,点击菜单栏「扩展程序」→「Apps 脚本」,进入脚本编辑器。
  2. 在脚本编辑器中,点击「服务」→「添加服务」,找到「People API」并启用。
  3. 同时需要在Google Cloud平台确认API已启用:在脚本编辑器的「项目设置」里复制项目ID,打开Google Cloud平台搜索该项目,在「API和服务」→「库」中找到「People API」并启用。

步骤2:编写并运行脚本

将以下代码粘贴到脚本编辑器中,保存并运行:

function getGoogleUserIDs() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 假设第一列是邮箱(A列),第一行是表头,从第二行开始读取数据
  const emailRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, 1);
  const emails = emailRange.getValues();
  const output = [];

  for (const [email] of emails) {
    if (!email) {
      output.push(['']);
      continue;
    }
    try {
      // 通过邮箱获取用户元数据,提取User ID
      const person = People.People.get(`people/${email}`, {
        personFields: 'metadata'
      });
      const userId = person.metadata.sources[0].id;
      output.push([userId]);
      // 避免触发API配额限制,每请求后延迟1秒
      Utilities.sleep(1000);
    } catch (error) {
      output.push(['获取失败:' + error.message]);
    }
  }

  // 将结果写入第二列(B列)
  sheet.getRange(2, 2, output.length, 1).setValues(output);
}

注意事项

  • 授权说明:第一次运行脚本时,会弹出权限请求窗口,需要授予脚本访问你的Google表格和People API的权限(需通过「高级」→「前往XXX(不安全)」完成授权,这是自定义脚本的正常流程)。
  • API配额:People API有每日调用配额(默认是1000次/天),如果你的邮箱数量较多,可适当调整Utilities.sleep()的延迟时间,或者分批次运行脚本。
  • 权限限制:只能获取你有权访问的用户ID(比如同域内的用户,或已公开信息的外部用户),如果获取失败,会在对应单元格显示错误信息。
  • 合规性:确保提取用户ID的行为符合Google服务条款及相关隐私法规。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:55:16