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

找不到Google Admin SDK错误资源:尝试列出现有用户时得域

桑鸿志
2023-03-14

我正在尝试编写一个简单的脚本,以获得使用GooglePython API的Google Apps用户列表。到目前为止,它看起来是这样的(基于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 = 'service_account_email@developer.gserviceaccount.com'
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 developer console上为以下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。

共有1个答案

养聪
2023-03-14

即使在使用服务帐户时,您仍然需要“充当”域中具有适当权限(例如超级管理员)的Google Apps用户。尝试:

credentials = SignedJwtAssertionCredentials(client_email, private_key,
                        OAUTH_SCOPE, sub='admin@domain.com')

其中admin@domain.com是域中超级管理员的电子邮件。

 类似资料:
  • 我想把我的Eclipse项目迁移到Android Studio。我以前使用minSdkVersion=8构建项目,但我想添加需要MinSDKVersion10的新功能。 我运行的是Android Studio1.1.0。导入Eclipse项目(主屏幕上的“Import project”)后,我转到“project Structure”窗口,选择“Flavors”选项卡,并为min sdk和targ

  • 我得到这个问题: 这就是它指向的地方 我正在尝试制作一个后端有express,前端有Webpack的应用程序。我在后端有一个Rest API,不能在前端使用。 我将Ubuntu与Mozilla Firefox 66.0.2和Nodejs 11.13.0结合使用 当我使用控制台时,它说问题出在它上面

  • 问题内容: 在最近对Android Studio进行更新之后,我们在获取一个可以编译以前有效的项目时遇到了问题。最初,我们收到以下错误: 我将gradle文件中的sdk构建目标更新为23,这使这个特定的问题消失了,但是它给了我们很多apache.http包错误(特别是,我们用于http东西的很多apache包现在都消失了在SDK 23中)。 我想做的是解决奇怪的资源错误,但是没有更新到sdk23。

  • 在Android Studio最近的一次更新之后,我们在编译以前工作的项目时遇到了问题。一开始我们得到以下错误: 我将gradle文件中的sdk构建目标更新到了23,这使得这个特定的问题不复存在,但它给我们留下了大量apache.http包错误(具体来说,我们用于http的大量apache包现在在sdk 23中消失了)。 我想做的是解决奇怪的资源错误,但不更新到SDK23。我现在没有时间重新编写工

  • 我试图升级AdMob的实现。使用GoogleAdMobSDK,我想把它转换成google-play-services-lib。 广告出现了。所以看起来没问题,但是我仍然在日志中调用loadAd()的方法时出现了这个错误 这是我的清单: > 我在工作区中导入库项目,复制源代码。 我将库引用到我的项目中 我在清单中添加元数据 我的代码

  • 我用Java做了一个游戏。它在Eclipse中工作得非常好。 我把它导出为一个可运行的罐子。当双击它的图标时,它不会打开。所以我试着从命令行运行JAR。 在试图检索图像资源的一行代码中,我遇到了一个NullPointerException错误(正如我所说,它在Eclipse中工作得很好)。这是发生错误的代码行: 我不知道出了什么问题。这是我项目的结构: 有什么想法吗?我开始绝望了。 非常感谢你的帮