创建新的用户Google管理员SDK python

时间:2018-06-20 16:05:45

标签: python google-admin-sdk google-directory-api

我收到一个错误消息,表明Google无法识别json中的用户名。我找不到包含http标头application / json的方法。返回URL给了我另一个错误代码,但我通过了登录身份验证。

我的代码:

from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
import requests
import json
import pprint

# Setup the Admin SDK Directory API
SCOPES = 'https://www.googleapis.com/auth/admin.directory.user'
#Global scope for access to all user and user alias operations.
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('admin', 'directory_v1', http=creds.authorize(Http()))
# Call the Admin SDK Directory API
userInfo = {
    "name" : {
        "givenName" : "Donald",
        "familyName" : "Dump",
    },
    "kind" : "user",
    "primaryEmail" : "testUser@test.com",
    "isAdmin": False,
    "isDelegatedAdmin": False,
    "agreedToTerms": True,
    "password": "testpass1234",
    "changePasswordAtNextLogin": True  
}
response = service.users().insert(body=json.dumps(userInfo)).execute()

Error code Positional Wrapper _helpers.py Link that produced HttpError 400

2 个答案:

答案 0 :(得分:0)

我没有使用Google API的经验,但是我认为它期望使用有效的JSON,因此即使在发送请求本身之前,我们在代码中也存在问题。 因此,在进一步操作之前,您应该修复声明的字典: 不能写"isAdmin": "false",,因为True / False是布尔值,但是您将它们作为字符串发送。 您应该改写"isAdmin": False,。如果要编辑json文件本身,请写false,因为在python中,布尔值以大写字母开头,而不是JSON。

答案 1 :(得分:0)

让我添加50cc。 这段代码对我有用。

admin_user_payload = {
 "status": "true"
 } 

request = service.users().makeAdmin(userKey='admin_user_key', body=admin_user_payload)
admin = request.execute()

其中admin_user_key应该是info@myaccount.com。我的意思是它是userKey。

默认情况下,将忽略有效内容用户插入中的

isAdmin。为了使用户成为管理员,您应该使用makeAdmin方法,该方法传递userKey(用户电子邮件有效)和有效负载为status:true。

下面您可以找到所有API文档。

https://google-api-client-libraries.appspot.com/documentation/admin/directory_v1/python/latest/admin_directory_v1.users.html