C2DM を使用してプッシュ通知を受信するアプリケーションを開発しています。C2DM 回路全体 (クライアントとサーバーの両方) を実装しましたが、正常に動作しています。
現在、私のアプリケーションには、C2DM 登録をブートストラップするためのボタンがあります。Google から登録 ID トークンを受け取ると、アプリ サーバーで Web サービスを呼び出して、デバイスを登録 ID に関連付けます。
アプリケーションに認証を実装しようとしていますが、C2DM 登録の処理に関していくつか質問があります。
- クライアント アプリケーション (つまり Android アプリケーション) には、最初の画面としてログイン画面が表示されるため、ユーザーは資格情報を入力できます。資格情報が検証されたらすぐに、C2DM 登録を呼び出して、ユーザーが登録 ID トークンに関連付けられるようにする予定です。これでよろしいですか?アプリケーションの後の実行では、ユーザーが資格情報を再度入力する必要がないように、おそらく資格情報または何らかのトークンを保存します。アプリケーションの起動時に C2DM 登録も起動する必要がありますか?
- Google が最終的に登録 ID を更新する可能性があることは承知しています。登録 ID も定期的に更新することをお勧めしますか? もしそうなら、いつが適切であるべきですか?登録 ID トークンの有効期限はありますか?
- クライアントとサーバー間で登録 ID が同期していないというまれなケースで何が起こるか (たとえば、新しい登録 ID がクライアントに到着し、その途中で古い登録 ID を持つサーバーで新しいイベントが発生し、登録 ID がサーバーに到着します)? Google はこのケースを処理しますか? アプリ サーバーでこのケースを処理する必要がありますか?
- 新しい登録 ID が Google から届いたときにサーバーにアクセスできない場合はどうなりますか? バックオフして、アラームを再試行するようにスケジュールする必要がありますか?
- これで他に何か落とし穴があると思いますか?