Грешка при извикване на 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.

Също така се уверете, че на клиентския идентификационен номер на акаунта за услуга са предоставени права за използване на обхватите на API за отчети в контролния панел на Google Приложения. Документите на 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/. @JayLee - person eludom; 21.11.2014