Android C2DM Auth токен, один раз или каждый раз

Я излагаю свой план внедрения 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

Сохраните токен аутентификации для будущих нажатий. На странице C2DM:

Возможность хранения ClientLogin Auth идентификаторы токена и клиента. Маркер ClientLogin Auth включен в заголовок POST-запросов, которые отправляют Сообщения. Для более подробного обсуждения этого тема, см. ClientLogin для установленных Приложения. Сервер должен хранить токен и обновить политику это периодически.

Также обратите внимание, что Google будет периодически обновлять токен в заголовке Update-Client-Auth. Подробнее см. это обсуждение в группе android-c2dm.

Из моего опыта я не могу сказать, когда и почему Google решает обновить токен. Это случалось со мной так часто, как каждый день, а иногда и каждую неделю.