当前位置: 首页 > 知识库问答 >
问题:

Google API域范围的委托服务帐户可以通过模拟用户来启用gmail推送吗?

戚鸿
2023-03-14

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

共有1个答案

家弘业
2023-03-14

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

 类似资料:
  • 我们需要访问谷歌日历API与服务器应用程序,以创建事件和邀请与会者。谷歌建议使用服务帐户的应用程序。 这里的主要问题是与会者邀请参加活动,因为如果没有域范围的授权,服务帐户就不能这样做(请参见img)。 组织不希望授予服务帐户访问所有用户数据的权限。所以,我想知道我们是否可以将域范围的授权委托给域的一个用户?(限制访问以使用其他用户的数据)。 附言。它只是关于谷歌日历API。 非常感谢你的帮助。

  • 问题内容: 我已经阅读了2天的教程并看到了示例,但没有成功。我想在NodeJS环境中使用Google Apps Gmail帐户发送电子邮件,但是我得到了Google API的回复: 到目前为止,这是我所做的: 在Google Cloud Platform中创建了一个项目 创建一个服务帐号 已为服务帐户启用 以格式下载了服务帐户的密钥 > 我创建了 为项目启用了Gmail API 在Google A

  • 为了访问GMail API(并将呼叫拟人化),我使用了一个服务帐户(从谷歌云平台创建)。我的json文件看起来像这样 我还使用oAuth2client库使其更容易,但我找不到创建凭据然后指定范围和委托帐户的方法。 我试过了 但是我得到了一个错误,因为它需要一个PKCS-8密钥。 我该怎么做?(如果有帮助,我的代码在应用程序引擎 Flex 上运行) 谢啦

  • 我们正在整合谷歌日历和我们的房间预订系统。GSuite域中的用户应该登录我们的预订屏幕并预订房间。到目前为止,我使用了一个具有域范围委托的服务帐户来模拟用户(< code>setSubject()方法,传递被模拟用户的电子邮件地址)。一切都正常,尽管这样我们无法验证我们想要模拟的用户是否成功登录,事件将只是以他作为组织者来创建,因为setSubject()只需要电子邮件正常工作。在IBM Domi

  • 我目前使用的谷歌服务帐户启用了域范围的委托(我使用了这个链接https://developers.Google.com/identity/protocols/oauth2/service-account,和这个链接https://developers.Google.com/admin-sdk/reports/v1/guides/developy),并且启用了“https://www.googlea

  • 我想用gmail API阅读我的gmail收件箱。我需要使用服务帐户,因为我的应用程序没有用户交互。我在请求时收到以下错误: 这是我的代码: 我做错了什么?有人能帮我吗? 当做