Ошибка Google Admin SDK: ресурс не найден: домен при попытке вывести список существующих пользователей

Я пытаюсь написать простой скрипт, чтобы получить список моих пользователей Google Apps с помощью Google Python API. Пока это выглядит так (на примере Google):

!/usr/bin/python

import httplib2

from apiclient import errors
from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.client import SignedJwtAssertionCredentials

client_email = '[email protected]'
with open("Python GAPS-98dfb88b4c9f.p12") as f:
  private_key = f.read()

OAUTH_SCOPE = 'https://www.googleapis.com/auth/admin.directory.user'

credentials = SignedJwtAssertionCredentials(client_email, private_key, OAUTH_SCOPE )
http = httplib2.Http()
http = credentials.authorize(http)

directory_service = build('admin', 'directory_v1', http=http)

all_users = []
page_token = None
params = {'customer': 'my_customer'}

while True:
  try:
    if page_token:
      param['pageToken'] = page_token
    current_page = directory_service.users().list(**params).execute()

    all_users.extend(current_page['users'])
    page_token = current_page.get('nextPageToken')
    if not page_token:
      break
  except errors.HttpError as error:
    print 'An error occurred: %s' % error
    break

for user in all_users:
  print user['primaryEmail']

Учетная запись службы авторизована в консоли разработчика Google для следующих API:

https://www.googleapis.com/auth/admin.directory.user https://www.googleapis.com/auth/admin.directory.user.alias

Однако когда я запускаю код, я получаю такую ​​ошибку:

An error occurred: <HttpError 404 when requesting https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&alt=json returned "Resource Not Found: domain"> 

Любые намеки на то, что мне не хватает?

E.


person Level15    schedule 27.11.2014    source источник


Ответы (1)


Даже при использовании учетной записи службы вам все равно необходимо «действовать как» пользователь Google Apps в домене с соответствующими правами (например, суперадминистратором). Пытаться:

credentials = SignedJwtAssertionCredentials(client_email, private_key,
                        OAUTH_SCOPE, sub='[email protected]')

где [email protected] - это адрес электронной почты суперадминистратора вашего домена.

person Jay Lee    schedule 28.11.2014