一部の Android デバイスにプッシュ アップデートを送信しようとしています。それらのいくつかはその間に新しいIDを取得したため、Googleは正規のIDがあると教えてくれました。私が読んだドキュメントから:
message_id が設定されている場合は、registration_id を確認します。
- registration_id が設定されている場合は、元の ID をサーバー データベースの新しい値 (正規 ID) に置き換えます。元の ID は結果の一部ではないため、リクエストで渡された registration_ids のリストから取得する必要があることに注意してください (同じインデックスを使用)。
一部が欠けていますか、それとも複数の登録 ID を Google に送信するとあいまいになりますか?
私のリクエスト(読みやすくするために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 を 3 に置き換える必要がありますか? 登録されたすべての ID に対してすべてのメッセージを送信するのは無駄です。ここで Stackoverflow ( GCM と ID の処理) に関する投稿を読み、Java サーバー用に解決しましたが、私のものは (RoR) ではありません。
この問題を解決する方法についてのアイデアはありますか?