use*_*785 3 python provisioning google-admin-sdk
我正在转换到新的admin-sdk api,而不是很容易找到它.我已经想出了誓言和基本的用户查询,但现在我不得不创建一个谷歌应用程序帐户.
这是我正在使用的代码:
import httplib2
import pprint
import sys
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
SERVICE_ACCOUNT_EMAIL = 'xyz@developer.gserviceaccount.com'
SERVICE_ACCOUNT_PKCS12_FILE_PATH = 'privatekey.p12'
f = file(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL,
key,
scope='https://www.googleapis.com/auth/admin.directory.user',
sub='myadmin@mydomain.edu',
)
http = httplib2.Http()
http = credentials.authorize(http)
userinfo = { 'primaryEmail': 'jane@mydomain.edu',
'name': { 'givenName': 'Jane', 'familyName': 'Smith' },
'password': 'mypasswd',
}
service = build("admin", "directory_v1", http=http)
users = service.users()
users.insert(userinfo).execute()
Run Code Online (Sandbox Code Playgroud)
这是结果:
Traceback (most recent call last):
File "xy", line 39, in <module>
new_user = users.insert(userinfo ).execute()
TypeError: method() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)
我在这个主题上尝试了很多排列无济于事,包括:
users.insert(name='Jane Smith', password='mypasswd', name.familyName='Smith',
name.givenName='Jane', primaryEmail='jane@testg.berkeley.edu').execute()
SyntaxError: keyword can't be an expression
users.insert(name='Jane Smith', password='mypasswd', familyName='Smith',
givenName='Jane', primaryEmail='jane@testg.berkeley.edu').execute()
File "build/bdist.linux-x86_64/egg/apiclient/discovery.py", line 573, in method
TypeError: Got an unexpected keyword argument "givenName"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
尝试:
userinfo = {'primaryEmail': 'jane@mydomain.edu',
'name': { 'givenName': 'Jane', 'familyName': 'Smith' },
'password': 'mypasswd',
}
service = build("admin", "directory_v1", http=http)
service.users().insert(body=userinfo).execute()
Run Code Online (Sandbox Code Playgroud)