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

使用Google Apps Script插入新用户时出现GoogleJsonResponseException错误求助

解决Google Apps Script插入用户时的"Invalid Input: primary_user_email"错误

我帮你排查出两个关键问题,这应该能解决你的报错:

1. 传递了错误的参数类型给AdminDirectory.Users.insert()

你现在把用户数据包装成了数组[{...}],但AdminDirectory.Users.insert()方法要求第一个参数是单个的User资源对象,而不是数组。这会直接导致API解析参数失败,触发primary_user_email无效的错误。

2. 全局变量的时机问题

你在全局作用域直接读取单元格的值,这些代码会在脚本第一次加载时就执行,而不是每次运行newUser()函数时执行。如果之后你修改了表格里的A2/B2/C2/D2内容,全局变量里的first、last、email、unit还是保留着旧值,这也可能导致邮箱地址无效。


修正后的代码

// 全局变量只保留电子表格引用,不要在这里读取单元格值
var ss = SpreadsheetApp.openById("1dVJQRSQZvAwZOAjde1wQsbaz77r4jle00v0_IREO2pE");

function newUser() {
  // 每次运行函数时,重新读取最新的单元格数据
  var sheet = ss.getSheetByName("Sheet1");
  var first = sheet.getRange("A2").getValue();
  var last = sheet.getRange("B2").getValue();
  var email = sheet.getRange("C2").getValue();
  var unit = sheet.getRange("D2").getValue();

  // 这里直接使用单个对象,而不是数组
  var user = {
    "primaryEmail": email,
    "orgUnitPath": '/Staff/' + unit,
    "name": {
      "givenName": first,
      "familyName": last
    },
    "password": "ABCD.1234",
    "changePasswordAtNextLogin": true
  };

  Logger.log(user);
  AdminDirectory.Users.insert(user); // 现在参数正确了
}

额外检查点

  • 确认email的值是符合Google Workspace格式的邮箱(比如xxx@yourdomain.com),确保域名是你的Workspace域名,没有拼写错误。
  • 检查你的脚本是否有足够的权限:运行脚本时会提示授权,确保你授予了Admin Directory API的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 07:39:05