Google API域范围的委托服务帐户是否可以通过冒充用户来启用gmail推送?

问题描述 投票:2回答:1

我在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?

google-api gmail-api google-api-python-client google-oauth2
1个回答
0
投票

我最近通过服务帐户成功完成了这个^^,只需在pubsub客户端设置调用中传递用户的电子邮件地址而不是“我”

© www.soinside.com 2019 - 2024. All rights reserved.