setIamPolicy 的 Gmail 通知问题

Posted

技术标签:

【中文标题】setIamPolicy 的 Gmail 通知问题【英文标题】:Gmail notifications issue with setIamPolicy 【发布时间】:2015-08-13 03:00:35 【问题描述】:

我正在尝试让新的 Gmail 推送通知按此处详述的方式工作

https://developers.google.com/gmail/api/guides/push

我已经设法让它的 pubsub 端工作(创建主题、订阅并且可以发布和拉取消息 OK),但它在步骤中失败了

授予您主题的发布权

我使用的客户端 (.Net) 不支持所需的方法,因此我使用的是 API 资源管理器。使用 Explorer 我生成以下请求。

POST https://pubsub.googleapis.com/v1beta2/projects/vivid-canyon-90023/topics/iLink:setIamPolicy?key=YOUR_API_KEY


 "policy": 
  "bindings": [
   
    "role": "roles/pubsub.publisher",
    "members": [
     "serviceAccount:gmail-api-push@system.gserviceaccount.com"
    ]
   
  ]
 

这会产生

的响应错误

 "error": 
  "code": 500,
  "message": "Internal error encountered.",
  "status": "INTERNAL"
 

不确定是什么问题 - 有没有人按照规定成功设置了发布权限?

【问题讨论】:

为什么 .NET 不支持所需的方法?嗯,它的生成速度可能很慢(现在已经 > 12 小时)。也许 ping 那些为 .NET 维护 Google APIs 库的人。 最新的 .Net Gmail API 也不支持 Gmail Watch 请求。 似乎将 .NET 客户端库发布到 NuGet 很慢/延迟。将询问。 那很好,因为我认为没有他们会有一些其他人摸不着头脑。 Nuget 现已推出新的 API。 【参考方案1】:

您的角色看起来不对,根据那里的文档,它应该是“roles/pubsub.publisher”(缺少“pubsub。”): https://developers.google.com/gmail/api/guides/push#pubsub_setup

【讨论】:

抱歉 - 尝试了不同的角色 - 使用正确的“roles/pubsub.publisher”角色时出现相同的错误。 使用 API 资源管理器有几个问题。确保选中“使用 oauth2”框。此外,您登录的用户需要拥有您在 setIamPolicy 的“资源”字段中指定的开发人员控制台项目的管理员权限。我确实知道它确实可以使用 API 资源管理器,只要您可以正确获取请求(在 UI 中构建它有点困难)。 我已经达到了这些标准,所以有点困惑。这个话题是对的,好像我弄错了它会引发另一个错误。我为以后的 pubsub .net 库找到了一些源代码,因此将尝试编译它,看看它是否有所作为。 是的,这有点奇怪。您是否可以通过 API 资源管理器执行 topic.getIamPolicy()、topics.create() 或 topic.list() 并获得预期结果等? topics.list() 没问题。【参考方案2】:

完全更新:

我确认来自亚洲的呼叫失败,而来自美国数据中心的相同呼叫成功。我们将在星期一(2015 年 6 月 1 日)进行修复。

我们已针对此问题推出了修复程序,现在应该可以正常工作了(2015 年 6 月 1 日太平洋时间上午 9:00)。

抱歉给您添麻烦了。

【讨论】:

很高兴它对您有用 TM。创建了新主题 - 相同的“内部错误”。尝试使用新主题的不同项目仍然出现“内部错误” 嗯,你能粘贴 APIs explorer 的输出吗? "error": "code": 500, "message": "遇到内部错误。", "status": "INTERNAL" 能否也粘贴请求部分? POST pubsub.googleapis.com/v1beta2/projects/vivid-canyon-90023/…YOUR_API_KEY "policy": "bindings": [ "role": "roles/pubsub.publisher", "members": [ "serviceAccount:gmail-api -push@system.gserviceaccount.com" ] ]

以上是关于setIamPolicy 的 Gmail 通知问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xamarin 接收 Gmail 通知

仅在有新邮件到达时接收 Gmail 推送通知

GMail 停止发送推送通知

Gmail-api 附带电子邮件时如何收到通知

如何构建类似“Gmail 通知程序”的工具?

Gmail 推送通知错误(每个开发人员只允许一个用户推送通知客户端)