1

调用 Reports 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='5163XXXXX@developer.gserviceaccount.com',
            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 域配置页面。

4

1 回答 1

1

尝试:

    credentials = SignedJwtAssertionCredentials(
        service_account_name='5163XXXXX@developer.gserviceaccount.com',
        private_key=oauth2_private_key,
        scope='https://www.googleapis.com/auth/admin.reports.usage.readonly',
        sub='super-admin@yourdomain.com')

在使用带有 Admin SDK 的服务帐户时,您仍然需要代表 Google Apps 实例中的管理员执行操作。

此外,请确保服务帐户客户端 ID 已被授予使用 Google Apps 控制面板中的报告 API 范围的权限。Google Drive 文档很好地描述了这个过程,只是在 Reports 范围内进行了细分。

于 2013-09-04T11:59:15.040 回答