Android C2DM Auth令牌,一次或每次

时间:2011-03-12 17:56:16

标签: android android-c2dm

我概述了将C2DM实施到应用程序中的计划,并且有关于Auth令牌的基本(读取:愚蠢)问题。

客户端服务器需要使用白名单帐户注册google 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

或者您是否必须为每个被推送的消息请求新的Auth代码?

1 个答案:

答案 0 :(得分:13)

存储身份验证令牌以供将来推送。来自Google C2DM page

  

能够存储ClientLogin Auth   令牌和客户端注册ID。该   ClientLogin Auth令牌包含在   发送的POST请求的标头   消息。有关此问题的更多讨论   主题,请参阅ClientLogin for Installed Applications.服务器应存储   令牌并有一个要刷新的策略   它定期。

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

根据我的经验,我无法判断Google何时或为何选择刷新令牌。我每天都经常发生这种情况,有时甚至每周都会发生。