【问题标题】:Error on creating a new google account using Google Directory API使用 Google Directory API 创建新的 google 帐户时出错
【发布时间】:2021-10-02 18:36:48
【问题描述】:

我正在尝试在 Python 脚本中使用 Google Directory API 自动创建 Google 帐户。但是当我运行我的脚本时,我收到以下错误:

Traceback (most recent call last):
  File "./create_user.py", line 34, in <module>
    main()
  File "./create_user.py", line 31, in main
    directory.create_user(userInfo)
  File "/home/romain/dev/ezdrive/access-auto/google_wrapper/directory.py", line 27, in create_user
    self.service.users().insert(body=json.dumps(userInfo)).execute()
  File "/home/romain/dev/ezdrive/access-auto/env/lib/python3.8/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/home/romain/dev/ezdrive/access-auto/env/lib/python3.8/site-packages/googleapiclient/http.py", line 943, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://admin.googleapis.com/admin/directory/v1/users?alt=json returned "Invalid Input: primary_user_email". Details: "[{'message': 'Invalid Input: primary_user_email', 'domain': 'global', 'reason': 'invalid'}]">

这是创建帐户的代码:

def main():
    userInfo = {
        "name": {
            "givenName": "Romain",
            "familyName": "Test DEV 1"
        },
        "kind": "user",
        "primaryEmail": "romain.test1@mydomain.net",
        "isDelegatedAdmin": False,
        "suspended": False,
        "isAdmin": False,
        "agreedToTerms": True,
        "password": "Password456",
        "changePasswordAtNextLogin": True
    }
    directory.create_user(userInfo)


class Directory:
    def __init__(self):
        self.get_service()

    def get_service(self):
        creds = oauth_login()
        self.service = build('admin', 'directory_v1', credentials=creds)

    def create_user(self, userInfo):
        self.service.users().insert(body=json.dumps(userInfo)).execute()

我检查了主电子邮件使用的域名是否正确,所以我不太明白出了什么问题。

提前感谢您的帮助!

【问题讨论】:

    标签: python google-api google-identity


    【解决方案1】:

    我终于找到了我的问题所在。我在某处读到我应该做service.users().insert(body=json.dumps(userInfo)),但实际上我只需要做service.users().insert(body=userInfo)。 我猜 JSON 转换已经在幕后自动发生了。

    【讨论】:

      猜你喜欢
      • 2013-10-11
      • 2014-10-12
      • 2014-05-25
      • 1970-01-01
      • 2021-09-30
      • 2018-08-22
      • 2013-10-15
      • 1970-01-01
      • 2018-03-16
      相关资源
      最近更新 更多