我正在尝试获取特定域的所有用户的电子邮件。我能够获取创建服务帐户(管理员帐户)的用户的电子邮件,但是在获取该域的其他用户的电子邮件期间,我遇到了 HttpError 403 "Delegation denied for xxx@example.com"
我做了以下步骤:
- 创建了一个项目,获取了一个 credentials.json 文件并使用该文件创建了一个 token.json 文件来验证请求,
- 创建服务帐户并启用域范围的委派,
- 从该服务帐户收集客户端 ID
- 然后使用此指南链接https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority将域范围的权限委派给该服务帐户
这是我请求获取其他用户的电子邮件数据的示例代码(使用 python):
from googleapiclient.discovery import build
from oauth2client import file
from httplib2 import Http
TOKEN_FILEPATH = "/path-to-token-file/"
def get_auth():
store = file.Storage(TOKEN_FILEPATH)
creds = store.get()
service = build('gmail', 'v1', http=creds.authorize(Http()))
return service
def get_emails():
user = 'xxx@example.com'
service = get_auth()
response = service.users().messages().list(userId=user).execute()
谢谢!