使用Python3调用Google Admin SDK添加G Suite用户遇400错误求助
解决Google Admin SDK添加用户时的Invalid Input: primary_user_email错误
嘿,我一眼就揪出问题所在了!你遇到的400错误根源是请求体格式不对——你把Python字典转成JSON字符串传给API,但Admin SDK的users().insert()方法需要的是原生Python字典,而非序列化后的JSON字符串。
问题核心
你代码里用了json.dumps()把用户信息转成了字符串:
userInfo = json.dumps({ "name" : { "givenName": name, "familyName": familyName }, "kind": "admin#directory#user", "primaryEmail": usermail, "password": "Welcome1234", "changePasswordAtNextLogin": True })
当你把这个字符串传给insert(body=userInfo)时,API没法正确解析字段,自然就抛出了Invalid Input: primary_user_email错误。
修改后的代码
只需要去掉json.dumps(),直接传递Python字典就行:
def addUser(name,familyName,usermail): print('Adding user '+usermail+' to the G suite') # 直接使用Python字典,无需转成JSON字符串 userInfo = { "name" : { "givenName": name, "familyName": familyName }, "kind": "admin#directory#user", "primaryEmail": usermail, "password": "Welcome1234", "changePasswordAtNextLogin": True } createUserConnection.service.users().insert(body=userInfo).execute()
额外需要确认的点
除了格式问题,还有几个细节要检查:
- 确保授权用的账号是G Suite超级管理员,或者拥有创建用户的专属管理员权限——普通账号没有调用Admin SDK创建用户的权限。
- 确认
usermail里的域名是你在G Suite控制台已验证过的域名(比如24i.com必须是你G Suite绑定的合法域名)。 - 检查密码
Welcome1234是否符合你的G Suite密码复杂度规则,不符合也可能触发错误。
改完之后,你的代码应该就能正常创建G Suite用户了!
内容的提问来源于stack exchange,提问作者Adrián Bárdossy
相关产品推荐
相关产品推荐

