Ich bin der Administrator für meine Google-Domain und versuche, die Bereitstellung neuer Nutzer zu automatisieren. Ich habe zuerst versucht, dies mit einem Befehlszeilenprogramm namens GAM zu tun.Erstellen von aktiven Nutzern über die Google Directory-API
https://github.com/jay0lee/GAM
Während dieses Tool funktioniert, zumindest die Hälfte der Nutzer erstelle ich für ungewöhnliche Aktivität gekennzeichnet und werden als suspendierte erstellt. Ich habe versucht, die Flaggen in einer Vielzahl von Kombinationen zu setzen, aber bekomme das gleiche Ergebnis.
Ich habe auch versucht, die Directory-API direkt zu verwenden, indem ich ein Python-Programm schreibe, aber alle neuen Benutzer werden immer noch als suspendierte Benutzer erstellt. Hier ist mein Programm. Kann jemand etwas Licht dazu bringen? Vielen Dank.
from __future__ import print_function
import httplib2
import os
from apiclient import discovery
import oauth2client
from oauth2client import client
from oauth2client import tools
try:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None
SCOPES = 'https://www.googleapis.com/auth/admin.directory.user'
CLIENT_SECRET_FILE = 'client_secret.json'
APPLICATION_NAME = 'Directory API Python Quickstart'
def get_credentials():
home_dir = os.path.expanduser('~')
credential_dir = os.path.join(home_dir, '.credentials')
if not os.path.exists(credential_dir):
os.makedirs(credential_dir)
credential_path = os.path.join(credential_dir,
'admin-directory_v1-python-quickstart.json')
store = oauth2client.file.Storage(credential_path)
credentials = store.get()
if not credentials or credentials.invalid:
flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
flow.user_agent = APPLICATION_NAME
if flags:
credentials = tools.run_flow(flow, store, flags)
else: # Needed only for compatibility with Python 2.6
credentials = tools.run(flow, store)
print('Storing credentials to ' + credential_path)
return credentials
def create_user():
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('admin', 'directory_v1', http=http)
userinfo = {'primaryEmail': '[email protected]',
'name': { 'givenName': 'Jane', 'familyName': 'Smith' },
'password': '34gjklre304iojlo24j2kl3kdlj',}
service.users().insert(body=userinfo).execute()
if __name__ == '__main__':
create_user()
main()