いくつかのアンドロイドデバイスにプッシュアップデートを送信しようとしています。その間に新しいIDを取得しているユーザーもいるので、標準のIDがあるとGoogleに伝えています。私が読んドキュメントから:REGISTRATION_IDが設定されている場合アンドロイドGCM正規のIDの元のIDを取得
- 、サーバーのデータベースに新しい値(正規のID)と、元のIDを置き換える:
をMESSAGE_IDが設定されている場合、REGISTRATION_IDをチェック。元のIDは結果の一部ではないので、リクエストで渡されたregistration_idsのリストから取得する必要があります(同じインデックスを使用)。
Googleに複数の登録IDを送信すると、一部が欠落していますか、あいまいですか?
私の要求(読みやすくするためのIDを置き換え):
"{"data":{"favorite":1},"registration_ids":["1","2","3","4","5","6"]}"
Googleからの応答は次のとおりです。このことから
{
"multicast_id":7917175795873320166,
"success":6,
"failure":0,
"canonical_ids":4,
"results":[
{"registration_id":"3","message_id":"m1"},
{"message_id":"m1"},
{"message_id":"m1"},
{"registration_id":"3","message_id":"m1"},
{"registration_id":"3","message_id":"m1"},
{"registration_id":"3","message_id":"m1"}
]
}
、私はID 3が正しいことを知っているが、オリジナルのIDがIべき3で置き換えますか?登録されたIDごとにすべてのメッセージを送信するのは無駄です。私はStackoverflow(GCM and id handling)でJavaサーバーのためにそれを解決する記事を読んだが、私は(RoR)ではない。
どのようにこの問題を解決するためのアイデアですか?
ああ、私はちょうど、アカウントに「MESSAGE_IDを」格納されているエントリを取ることはありませんでしたので、私は私の上の4エントリの応答を検討していました6エントリーリクエスト。あなたの最初のリストは私のためにそれをしました。ありがとう。 – Jos
最初に送信する前に正しい「registration_id」をフィルタリングするにはどうすればよいですか?それ以外の場合、最初のケースではサーバーは依然として3つの重複したメッセージを送信し、受信サーバーの応答が重複を消去した後にのみ発生します。 – iBog