【发布时间】:2017-07-03 18:00:35
【问题描述】:
我正在尝试通过 Google 管理目录 API 列出用户。
import logging
import os
from google.appengine.api import memcache
from googleapiclient import discovery
from oauth2client.contrib.appengine import AppAssertionCredentials
import httplib2
from flask import Flask
credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/admin.directory.user')
auth_http = credentials.authorize(httplib2.Http(cache=memcache))
service = discovery.build('admin', 'directory_v1', http=auth_http)
@app.route('/list')
def list():
results = service.users().list(domain='example.com', maxResults=10, orderBy='email').execute()
return 'success'
app = Flask(__name__)
我正在 App Engine 中运行此程序,并按照https://developers.google.com/api-client-library/python/auth/service-accounts 中的说明为 App Engine 默认服务帐户启用了域范围委派
这是我得到的错误:HttpError: https://www.googleapis.com/admin/directory/v1/users?orderBy=email&domain=example.com&alt=json&maxResults=10 返回“未授权访问此资源/api">
【问题讨论】:
-
正如@noogui 指出的那样,通过重新执行Domain-Wide Delegation 的每个步骤来解决这个问题。如果您能够解决您的问题,我要求您提供答案或选择 noogui 的答案作为解决方案。如果您仍有问题,请提供有关当前域范围委派设置的更多详细信息。
-
所以您不能使用 App Engine 默认服务帐户?
标签: python google-app-engine google-admin-sdk google-directory-api