2016-09-15 2 views
1

Я администратор для своего домена Google, и я пытаюсь автоматизировать подготовку новых пользователей. Сначала я попытался сделать это с помощью инструмента командной строки, называемого GAM.Создание активных пользователей через API каталога Google

https://github.com/jay0lee/GAM

Пока работает этот инструмент, по крайней мере, половина пользователей, которые я создаю помечаются для необычной деятельности и созданы как приостановлено. Я попытался установить флаги в различных комбинациях, но получаю тот же результат.

Я также попытался использовать API каталога напрямую, написав программу python, но все новые пользователи все еще создаются в качестве приостановленных пользователей. Вот моя программа. Может кто-нибудь пролить некоторый свет на это? Спасибо.

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

ответ

0

Эта проблема оказалась приписана тестированию в бесплатном пробном домене. Используя пробный домен, как GAM, так и программа python выше создали некоторых приостановленных пользователей и некоторых активных пользователей. Тем не менее, когда я пробовал оба метода на моей полной домене google полной версии, я смог последовательно создавать всех активных пользователей.

0

Обратите внимание на следующее утверждение из каталога API о Creating accounts:

Если учетная запись Google приобрела лицензии почты, новая учетная запись пользователя автоматически присваивается почтовый ящик. Это задание может занять за несколько минут, чтобы завершить и активировать.

Так может потребоваться некоторое время. Кроме того, обратите внимание, от пользователя resources что:

Новая учетная запись не будет автоматически приостановлено Google до первого входа администратора, который активирует учетную запись. После активации учетной записи учетная запись больше не будет приостановлена.

Итак, создав новую учетную запись, попробуйте войти в нее, чтобы официально активировать ее.

Смежные вопросы