我在Google Apps域上创建了一个服务帐户,并启用了域范围的委派,并在我的域控制面板上的服务帐户的客户端ID上启用了完整的gmail和pubsub API范围。
我可以成功实例化一个gmail API客户端并模拟其中一个域帐户:
credentials = oauth2client.SignedJwtAssertionCredentials(secret['client_email'], secret['private_key'], ['https://www.googleapis.com/auth/gmail.modify'], sub='[email protected]')
http = httplib2.Http()
credentials.authorize(http)
return discovery.build('gmail', 'v1', http=http)
我正在尝试使用以下内容在模拟用户的帐户上设置推送通知webhook。指定的主题名称有效。
request = {
'labelIds': ['INBOX'],
'topicName': 'projects/projectName/topics/topicName'
}
gmail.users().watch(userId='me', body=request).execute()
在观看电话后我收到以下错误:
<HttpError 400 when requesting https://www.googleapis.com/gmail/v1/users/me/watch?alt=json returned "Invalid developer ID">
调用其他gmail API方法(列表消息等)是成功的。
具有域范围委派的服务帐户是否能够在域用户的帐户上启用gmail推送通知webhook?
我最近通过服务帐户成功完成了这个^^,只需在pubsub客户端设置调用中传递用户的电子邮件地址而不是“我”