2011-03-12 96 views
14

我概括我的计划来实现C2DM到应用程序中,有一个基本的(阅读:愚蠢)有关身份验证令牌的问题。的Android C2DM身份验证令牌,一次或每一次

客户端服务器需要使用白名单帐户与谷歌的C2DM服务注册:

来进行测试:

curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source="your_app_name_and_ver_for_logging_purposes_only" -d service=ac2dm 

我的问题是,这是否每个应用程序发生一次每C2DM账户 - 即:使用列入白名单的帐户在一个服务器生成授权码,储存,然后每一个消息被发送的时间检索和使用:

curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=StringToPass" -d collapse_key=something -k 

或做你必须为每个推送的消息申请一个新的验证码?

回答

13

商店未来的身份验证令牌推动。从谷歌C2DM page

能够存储的ClientLogin验证令牌 和客户端注册ID。所述 的ClientLogin验证令牌被包括在该 发送 消息POST请求的报头中。对于这个 话题的更多讨论,请参阅ClientLogin for Installed Applications.服务器应存储 的令牌,并有一个策略,以定期刷新 它。

另请注意,Google会定期刷新Update-Client-Auth标头中的令牌。有关详细信息,请参见android-c2dm组中的this discussion

从我的经验,我无法告诉你何时或为什么谷歌选择刷新令牌。这发生在我每天都经常发生的事上,有时甚至是每一周。

+0

以前的authTokens是否继续运行?似乎这是我的情况.. – paislee 2011-12-16 01:57:34

+0

根据我的经验,旧的认证令牌继续运作。它没有记录多久,或多少消息。 – gnuf 2012-01-27 14:52:32