Грешка в Google Admin SDK Ресурсът не е намерен: домейн при опит за изброяване на съществуващи потребители

Опитвам се да напиша прост скрипт, за да получа списък с моите потребители на Google Apps, използвайки API на Google за python. Засега изглежда така (въз основа на пример от 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