2012-06-02 33 views
3

我正在为我的Android应用程序实施C2DM。客户端(Android)进展顺利,但我在实现服务器端时有点困惑。C2DM服务器。我们现在应该使用OAuth吗?

我的服务器是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]

关于这个问题的任何指针可以理解

从谷歌最近的文章听起来像客户端登录是要走的路... http://android-developers.blogspot.com/2012/04/android-c2dm-client-login-key.html

+0

啊,很好找到与Android开发人员的链接。它有助于确认我的立场,但对于我们所有人来说,确保我们正确处理关键到期也是很好的建议。 –

+0

我得到了更多的答案,是的,OAuth支持! https://groups.google.com/forum/?fromgroups#!topic/android-c2dm/AYh-lm43LOM – katit

回答

3

我最近开始设立C2DM自己,我有当我看到弃用通知时,您也会遇到同样的困惑。我最好的理解是,虽然谷歌正在转向大多数服务的OAuth 2,但贬低ClientLogin,C2DM仍然使用ClientLogin,所以这就是你在这种情况下必须使用的。

理由:

  • 当然一切都在(上最新和经常更新)C2DM documentation明确提到的ClientLogin,强烈暗示该服务依赖于这种特殊的授权方法。客户端登录被明确提及11次,但没有提到OAuth或任何其他可能的身份验证方式。

简而言之,我相信您必须使用ClientLogin for C2DM,并且应该忽略它已被其他Google服务弃用的事实,而这些服务可以被OAuth更好地服务。在可预见的将来,除了ClientLogin以外,没有其他任何事情可以用于C2DM。

+0

有没有官方说它仍在使用OAuth?所有到C2DM页面的身份验证链接都破坏了,这是一个新的发展,我不想在已弃用的技术上启动它,除非OAuth很长一段时间不会在C2DM上提供。 – katit

+0

C2DM页面在几个地方连接到您链接到(AuthForInstalledApps)的同一页面,并且似乎很清楚ClientLogin是要走的路。正如您所指出的,有几个链接被破坏,仅仅是因为它们需要更新到新的,略有不同的URL。 –

+0

我对他们两人都是新手,无论哪一个实施都无所谓。从我了解你在#2错误,因为他们确实支持服务器的OAuth。 https://developers.google.com/accounts/docs/OAuth2#serviceaccount 客户端登录将在2015年消失? OTH在.NET中的OAuth将成为PITA,因为我将不得不为项目带来至少两个外部依赖关系。 – katit

2

我认为OAuth 2.0是最好的选择。我第一次使用C2Log的ClientLogin,但发现没有授权码的管理。即使我使用Google Account Authorize Access页面取消了访问权限,我仍然可以使用之前发布的授权码向我的设备发送消息!此外,我不喜欢在某处存储Google凭证以获取授权代码的想法。

OAuth 2.0稍微复杂一些,但现在我明白了,我发现它比ClientLogin更优雅。

基本上一个生成使用Google's OAuth 2.0 Playground一个OAuth客户端IDOAuth客户端秘密刷新令牌。这些可用于获取(刷新)在有限时间(通常为1小时)内有效的访问令牌。访问令牌然后用于使用C2DM发送消息。

我跟着this tutorial来设置它,它就像一个魅力!

相关问题