当前位置: 首页 > 知识库问答 >
问题:

Google App Engine Admin SDK报告API返回403权限不足错误

郎健柏
2023-03-14

我从一些来自Google的App Engine的示例代码开始。

我的应用程序需要使用目录API和报表API从谷歌管理SDK。

我已经在API控制台中创建了一个项目,并在Services中打开了Admin SDK。

我将作用域(与下面代码中使用的作用域相同)添加到我域的Google cPanel中高级工具的“Manage API client Access”部分。

null

之后,对Reports API的调用失败,并显示错误消息:

“httperror:https://www.googleapis.com/admin/reports/v1/activity/users/all/applications/admin?alt=json返回”权限不足&>“

非常感谢你的帮助。

import webapp2
import os
from apiclient.discovery import build
from oauth2client.appengine import OAuth2Decorator
from oauth2client.appengine import OAuth2DecoratorFromClientSecrets
from apiclient import errors
import logging
import json

decorator = OAuth2DecoratorFromClientSecrets(
  os.path.join(os.path.dirname(__file__), 'client_secrets.json'),
  'https://www.googleapis.com/auth/admin.directory.user.readonly')

directoryauthdecorator = OAuth2Decorator(
    client_id='123.apps.googleusercontent.com',
    client_secret='456-abc',
    callback_path='/oauth2callback',
    scope='https://www.googleapis.com/auth/admin.directory.user.readonly '
          'https://www.googleapis.com/auth/admin.reports.audit.readonly '
          'https://www.googleapis.com/auth/admin.reports.usage.readonly'
)

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('Hello world!')

class OAuthHandler(webapp2.RequestHandler):
    @directoryauthdecorator.oauth_required
    def get(self):
        users = []

        # Get the authorized Http object created by the decorator.
        auth_http = directoryauthdecorator.http()

        # Get the directory service
        service = build("admin", "directory_v1", http=auth_http)

        result = []
        page_token = None
        while True:
            try:
                param = {}
                param['domain'] = 'mydomain.com'
                if page_token:
                    param['pageToken'] = page_token

                files = service.users().list(**param).execute()
                result.extend(files['users'])
                page_token = files.get('nextPageToken')
                if not page_token:
                    break
            except errors.HttpError, error:
                print 'An error occurred: %s' % error
                break


        users = []
        for user in result:
            logging.info(user['primaryEmail'])
            users.append(user['primaryEmail'])

        param = {}
        param['userKey'] = 'all'
        param['applicationName'] = 'admin'

        service = build('admin', 'reports_v1', http=auth_http)

        # this call fails with the 403 Insufficient Permissions error
        results = service.activities().list(**param).execute()
        logging.info(results)

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    ('/users', OAuthHandler),
    (directoryauthdecorator.callback_path, directoryauthdecorator.callback_handler()),
], debug=True)

共有1个答案

鲁熙云
2023-03-14

我阅读了这篇文章,并清除了数据存储中的凭据。

再次点击/users url,我得到了redirect_uri错误消息。

我回到API项目,修复了重定向URI,并下载了client_secrets.json文件

现在两个调用都可以工作(一个调用目录API,另一个调用报告API)。

 类似资料:
  • 我使用谷歌分析管理API帐户用户链接:列表 我正在尝试获取帐户用户列表... 我得到以下错误 {“error”:{“errors”:[{“domain”:“global”,“reason”:“insufficientPermissions”,“message”:“权限不足”}],“code”:403,“message”:“权限不足”}} 在Google Analytics中,我设置了所有权限 编辑

  • 从Gmail的电子邮件附件上载到Google Drive: 朋友们大家好,如果我删除文件目录中的token.pickle和token_drive.pickle文件(这些文件是与google cloud分开创建的)并运行代码: ”ResumableUploadError: 这似乎是Gmail和Drive同时身份验证的问题,因为media\u body和file\u元数据返回一个值,但我无法解决这个问

  • 我一直在尝试使用服务帐户访问Calendar v3 API。我已经添加了范围https://www.googleapis.com/auth/calendar并与该服务帐户的电子邮件地址共享了我的日历。 我也一直在用同一个服务帐户访问https://www.googleapis.com/auth/coordinate scope,它工作得很好。 此外,尝试撤销访问权限,如这里所述:为什么谷歌日历AP

  • 好的,正如标题所建议的谷歌分析API问题。。。 null null Analytics Google API错误403:“用户没有任何Google Analytics帐户” Google Analytics API:“用户对此帐户没有足够的权限。” 但仍然无法让它工作。我添加了范围,如下所示: 现在,我有我试图查询的视图id(profile):code46034120/code>,所以我得到了服务

  • 我正在尝试从Google-Analytics访问数据。我正在遵循指南,并且能够对我的用户进行G授权,并从OAuth获得代码。 当我试图从GA访问数据时,我只得到403个不够的权限。我是否必须将我在Google API控制台中的项目连接到我的分析项目?我该怎么做?还是有什么其他原因让我得到403不够的权限回来? 我正在用Python和Django做这件事,而且我已经打开了我的API控制台的Analy

  • 我正在尝试使用服务帐户将文件上载到google drive,但我遇到了如下错误 (403)权限不足错误 尽管从驱动器中提取文件列表工作正常。 我在论坛上回顾了类似的问题,并尝试了一些建议,但似乎什么都不起作用。 代码有什么问题吗?