Google API域委托服务帐户是否可以通过模拟用户启用gmail推送



我在我的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='accountToImpersonate@domain.com')
    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客户端设置调用中传递用户的电子邮件地址,而不是"我"

相关内容

  • 没有找到相关文章