Android 服务器上具有ClientLogin的C2DM

Android 服务器上具有ClientLogin的C2DM,android,push-notification,android-c2dm,Android,Push Notification,Android C2dm,我正在为一个用Ruby编写的移动应用程序开发服务器端解决方案。我们的部分需求是通知我们的分布式客户打电话回家,以接收更新的负载,这项服务似乎非常适合 我已经原型化并测试了我们需要的一切,并验证了解决方案可以在我的本地机器上运行。(使用,链接到我自己正在进行的fork,以解决SSL证书问题,其中证书不包括Google的api子域。)api中的一个主要问题除外: 当部署到我们的开发应用服务器时,我无法传输消息。深入研究结果后,我发现我们收到了谷歌的回复,上面说,CAPTCHAREQUIRED和一个c

我正在为一个用Ruby编写的移动应用程序开发服务器端解决方案。我们的部分需求是通知我们的分布式客户打电话回家,以接收更新的负载,这项服务似乎非常适合

我已经原型化并测试了我们需要的一切,并验证了解决方案可以在我的本地机器上运行。(使用,链接到我自己正在进行的fork,以解决SSL证书问题,其中证书不包括Google的
api
子域。)api中的一个主要问题除外:

当部署到我们的开发应用服务器时,我无法传输消息。深入研究结果后,我发现我们收到了谷歌的回复,上面说,
CAPTCHAREQUIRED
和一个captcha令牌加上一个captcha图像的URL,尽管我使用的是在开发过程中在本地创建的有效的
auth_令牌。因此,我使用自己的浏览器请求验证码并解决它,然后使用curl将开发服务器的回复发布到ClientLogin,之后我能够获得传输消息所需的
auth_令牌

这让我担心,在部署到生产环境时,会出现类似的身份验证挑战。因此,我和一位队友进行了更多的研究,发现虽然没有人知道
auth_令牌
何时会过期的确切规格,但至少有一位自称是谷歌工程师的人声称其有效期“至少两周”然后,一个建议的解决方案是,当ClientLogin响应表明
CAPTCHAREQUIRED
时,您呼叫/发送电子邮件给ops/devops人员以解决CAPTCHA问题,并使用服务器应用程序中的页面/工具提交答案以获取新的
auth\u令牌
。(如果这是我必须做的,我想亚马逊的机械土耳其人拯救了这一天?)

当然,这些信息很可能已经过时,但这并不能改变我仍然需要解决CAPTCHA的事实,至少在初始安装期间是这样。我们控制生产环境,所以这不是什么大问题,只是一个小小的不便,因为我们不知道是什么导致了
CAPTCHAREQUIRED
质询响应。(我们推测该帐户的IP地址以前未知。)


我忍不住想,我在这里做了一些非常非常非常错误的事情。

身份验证令牌的生命周期问题仍然悬而未决。C2DM仍然是一个测试版,所以谷歌人不想承诺一个可靠的数字。可以理解,但令人沮丧


也就是说,根据我的经验,如果您使用专用的Google帐户进行C2DM,验证码挑战永远不会出现。

到目前为止,我们在初始安装后还没有收到验证码挑战(它需要集群上的IRB控制台会话来解决-我已经为将来的部署编写了一个页面),虽然我们已经让代币在一到两周内到期。现在我只打算每三天通过cron作业重新验证一次。1-2周?疯狂。我会考虑的,谢谢。