Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 在我们的谷歌云发布/订阅权限之外提供Gmail API_Google Cloud Platform_Gmail_Google Cloud Pubsub - Fatal编程技术网

Google cloud platform 在我们的谷歌云发布/订阅权限之外提供Gmail API

Google cloud platform 在我们的谷歌云发布/订阅权限之外提供Gmail API,google-cloud-platform,gmail,google-cloud-pubsub,Google Cloud Platform,Gmail,Google Cloud Pubsub,让我试着向你解释一下我们要做什么 说得快一点:我们想给谷歌云以外的GMail API以发布/订阅(在我们的谷歌云中)特权 我们所拥有的: 以下说明如下: 我们已经为GMail API和GoogleCloud中的凭证创建了一个项目,我们称之为Cloud-a(我们不会在生产环境中拥有这一方面;这个项目和云将由我们客户的it部门管理) 接下来,我们遵循另一个指南 我们在GoogleCloud(Cloud-B)中创建了一个Pub/Sub主题,我们拥有这部分内容,我们希望订阅该主题,以便侦听消息/通知。(

让我试着向你解释一下我们要做什么

说得快一点:我们想给谷歌云以外的GMail API以发布/订阅(在我们的谷歌云中)特权

我们所拥有的: 以下说明如下: 我们已经为GMail API和GoogleCloud中的凭证创建了一个项目,我们称之为Cloud-a(我们不会在生产环境中拥有这一方面;这个项目和云将由我们客户的it部门管理)

接下来,我们遵循另一个指南 我们在GoogleCloud(Cloud-B)中创建了一个Pub/Sub主题,我们拥有这部分内容,我们希望订阅该主题,以便侦听消息/通知。(此主题与GMail API的帐户不同,GMail API将发布Cloud-a消息)。 所以,根据上一个指南,它说我们需要授予gmail api权限-push@system.gserviceaccount.com从我的理解来看,这意味着我正在授予Cloud-B的GMail API在Pub/Sub-Cloud-B中发布消息的特权

我找不到的是如何从Cloud-a向Gmail API授予在Pub/Sub-Cloud-B中发布消息的权限

最后,我想听听Cloud-B中的Pub/Sub,它将从Cloud-A中的Gmail API接收通知

我们使用了这个,我得到一个错误,说这个主题不存在(可能是因为它在Cloud-B中,我正在配置Cloud-A Gmail Api)


我希望我说得够清楚了,我们不希望在同一个谷歌云中给另一个项目提供对发布/订阅的访问,它甚至不是我们编写的服务,因为它是Gmail Api,我们唯一可以做的就是发送我们想要发布的主题名。

我不熟悉Gmail Api发布到发布/订阅的方式,但是,如果您已经知道如何从project Cloud-A中的GMail API发布到Cloud-A中的发布/子主题,您可以尝试以下解决方法:

备选案文A:

  • 在project Cloud-A中创建主题(主题A)
  • 在项目Cloud-a中创建与主题a关联的请求订阅(SUB-a)
  • 在project Cloud-B中创建服务帐户(account-B),并授予其订阅Sub-a的发布/订阅订阅角色
  • 让您的消费者(例如AppEngine、GKE、GCE)使用服务帐户B从subs-A获取消息
  • 备选案文B:

  • 在project Cloud-A中创建主题(主题A)
  • 创建与主题a关联的推送订阅(SUB-a),指向项目Cloud-B中托管的服务的端点(例如GCE、GKE、AppEngine、Cloud Function等)
  • 备选案文C:

  • 在project Cloud-A中创建主题(主题A)
  • 在project Cloud-B中创建与project Cloud-a中的主题a关联的拉式订阅或推式订阅(Sub-B)。创建此订阅的用户应为主题a授予发布/订阅编辑器角色
  • 使用来自subs-B的消息

  • 我喜欢你给我不止一个选择。可悲的是,我正在寻找一些更直接的,不需要为我们的客户额外设置。如果有人说我绝对不知道我说了什么,那没关系。。。我只需要一个答案。@leizzer,没问题,我自己想要最直接的解决方案。另一方面,步骤是一样的,只是资源放在哪里的问题:即使可以从project Cloud-a中启用的GMail API发布到project Cloud-B中的主题,您仍然需要:1。配置订阅以检索消息。2.配置服务帐户以访问订阅(仅适用于请求订阅)和3。一个使用者进程,它使用服务帐户从订阅中提取消息,或者具有消息推送到的端点。