我正在为我的Android应用实施C2DM。客户端(Android)运行良好,但我对实现服务器端有点困惑。
我的服务器是C#/。NET。在身份验证方面,官方文档链接到404: https://developers.google.com/android/c2dm/#handling_reg
我找到了另一页: https://developers.google.com/accounts/docs/AuthForInstalledApps
但它说弃用了。所以,我不知道现在该做什么。使用已弃用的功能或了解如何使用OAuth? (之前从未这样做过)
如果我选择OAuth - 我应该在这里传递什么:
Authorization: GoogleLogin auth=[AUTH_TOKEN]
?
有关此主题的任何指示都将不胜感激
来自Google的最新帖子听起来像客户登录是要走的路...... http://android-developers.blogspot.com/2012/04/android-c2dm-client-login-key.html
答案 0 :(得分:3)
我最近开始自己设置C2DM,当我看到弃用通知时,我遇到了同样的困惑。我最好的理解是,虽然Google正在转向OAuth 2以获取大多数服务,但弃用ClientLogin,C2DM仍然使用ClientLogin,因此在这种情况下您必须使用它。
理由:
简而言之,我认为您必须将ClientLogin用于C2DM,并且应该忽略这样一个事实,即OAuth更好地服务的其他Google服务不推荐使用它。在可预见的将来,除了ClientLogin以外的任何其他内容似乎都不会与C2DM一起使用。
答案 1 :(得分:2)
我认为OAuth 2.0是要走的路。我首先使用ClientLogin进行C2DM,但发现没有已发布授权码的管理。即使我使用Google Account Authorize Access页面撤销访问权限,我仍然可以使用之前发出的授权码向我的设备发送消息!此外,我不喜欢在某处存储Google凭据以获取授权码的想法。
OAuth 2.0稍微复杂一点,但现在我明白了,我发现它比ClientLogin更优雅。
基本上,使用Google's OAuth 2.0 Playground生成 OAuth客户端ID , OAuth客户端密钥和刷新令牌。这些可用于获取(刷新)在有限时间内(通常为1小时)有效的访问令牌。然后使用访问令牌使用C2DM发送消息。
我跟着this tutorial设置它,它就像一个魅力!
答案 2 :(得分:0)