Ошибка при вызове Reports API v1

Я получаю сообщение об ошибке при вызове API отчетов:

<HttpError 403 when requesting https://www.googleapis.com/admin/reports/v1/usage/users/all/dates/2013-08-01?alt=json&maxResults=1 returned "Caller does not have access to the customers reporting data.">

Кто-нибудь видел эту ошибку раньше? Что мне не хватает? Я просто не понимаю, почему это показывает или что я должен проверить.

С уважением.

РЕДАКТИРОВАТЬ:

Авторизация:

        credentials = SignedJwtAssertionCredentials(
            service_account_name='[email protected]',
            private_key=oauth2_private_key,
            scope='https://www.googleapis.com/auth/admin.reports.usage.readonly')

        # https://developers.google.com/api-client-library/python/guide/thread_safety
        http = credentials.authorize(httplib2.Http())

        service = apiclient.discovery.build('admin', 'reports_v1', http=http)

Собственно вызов:

result = service.userUsageReport().get(
    userKey='all',
    date='2013-08-01',
    maxResults=1).execute()

Другие API просто отлично работают с этой учетной записью службы. 'https://www.googleapis.com/auth/admin.reports.usage.readonly» был правильно добавлен на страницу конфигурации домена OAuth2.


person AMS    schedule 03.09.2013    source источник
comment
кем вы аутентифицируетесь? Реселлер или суперадминистратор экземпляра Google Apps? Это помогает увидеть ваш фактический код, а не только ошибку, которую вы получаете.   -  person Jay Lee    schedule 03.09.2013
comment
Привет Джей. Я редактирую вопрос, чтобы показать код...   -  person AMS    schedule 04.09.2013


Ответы (1)


Пытаться:

    credentials = SignedJwtAssertionCredentials(
        service_account_name='[email protected]',
        private_key=oauth2_private_key,
        scope='https://www.googleapis.com/auth/admin.reports.usage.readonly',
        sub='[email protected]')

при использовании сервисных аккаунтов с Admin SDK вам по-прежнему необходимо действовать от имени администратора в экземпляре Google Apps.

Кроме того, убедитесь, что идентификатору клиента сервисного аккаунта предоставлены права на использование областей Reports API в панели управления Google Apps. Документы Google Диска хорошо описывают этот процесс, вместо этого просто перейдите в области отчетов.

person Jay Lee    schedule 04.09.2013
comment
Все равно не повезло. На этот раз я получаю AccessTokenRefreshError (не удалось подключиться: access_denied). Для других вызовов Admin SDK я использую prn='[email protected]', но это дает ту же ошибку в этих вызовах Reports. - person AMS; 04.09.2013
comment
см. обновленный ответ. Вам необходимо убедиться, что учетной записи службы предоставлен доступ к заданным областям в CPanel. - person Jay Lee; 04.09.2013
comment
Решено. Я думал, что добавил область использования, а также область аудита (admin.reports.audit.readonly), но ошибся. Благодарю вас! - person AMS; 04.09.2013
comment
Кажется, предполагается Oauth 1.0. приведенный выше пример Google Dive от @JayLee предлагает вам выбрать "Управление". доступ стороннего клиента OAuth, что приводит к тому, что документы о версии 1.0 устаревают. Предложения для 2.0? - person eludom; 21.11.2014
comment
ХОРОШО. Работающий. В разделе Использование OAuth 2.0 для межсерверных приложений раздела Делегирование полномочий на уровне домена. в сервисный аккаунт, следует изменитьs/Manage third party OAuth Client access/Manage API client access/. @ДжейЛи - person eludom; 21.11.2014