Android GCM получить оригинальный идентификатор канонического идентификатора
Я пытаюсь отправить push-обновление на некоторые устройства Android. В то же время некоторые из них получили новый идентификатор, поэтому я, Google, сообщаю, что есть канонические идентификаторы. Из документации я прочитал:
Если message_id установлен, проверьте для registration_id:
Если установлен регистрационный идентификатор, замените исходный идентификатор новым значением (каноническим идентификатором) в базе данных вашего сервера. Обратите внимание, что исходный идентификатор не является частью результата, поэтому вам необходимо получить его из списка registration_ids, переданного в запросе (с использованием того же индекса).Я пропускаю часть или это двусмысленно, если вы отправляете более одного регистрационного идентификатора в Google?
Мой запрос (заменены идентификаторы для удобства чтения):
"{"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"}
]
}
Исходя из этого, я знаю, что идентификатор 3 является правильным, но какие оригинальные идентификаторы я должен заменить на 3? Отправка каждого сообщения для каждого зарегистрированного идентификатора будет пустой тратой. Я прочитал пост здесь на Stackoverflow (GCM и обработка идентификаторов ) решить его для сервера Java, но мой нет (RoR).
Есть идеи, как решить эту проблему?