2016-09-15 5 views
1

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() 

Antwort

0

Dieses Problem wurde dem Testen einer kostenlosen Testdomäne zugeordnet. Unter Verwendung einer Testdomäne haben sowohl GAM als auch das obige Python-Programm einige gesperrte Benutzer und einige aktive Benutzer erstellt. Als ich jedoch beide Methoden auf meiner kostenpflichtigen Vollversions-Google-Domain ausprobierte, war ich in der Lage, ständig alle aktiven Benutzer zu erstellen.

0

Beachten Sie die folgende Aussage von Directory-API über Creating accounts:

Wenn das Google-Konto Mail-Lizenzen erworben hat, das neue Benutzer Konto wird automatisch eine Mailbox zugewiesen. Diese Zuweisung kann ein paar Minuten dauern, um abgeschlossen und aktiviert zu werden.

So kann es dauern. Beachten Sie auch vom Benutzer resources dass:

Ein neues Konto automatisch von Google, bis der Anfangs Administrator-Anmeldung aufgehängt ist, die das Konto aktiviert. Nachdem das Konto aktiviert ist, wird das Konto nicht mehr gesperrt.

Versuchen Sie also nach dem Erstellen des neuen Kontos, es einzuloggen, um es offiziell zu aktivieren.

Verwandte Themen