Наш проект был включен в белый список для тестирования нового API GCM User Notifications, который позволяет группировать идентификаторы регистрации на один «ключ уведомления», который затем может использоваться для отправки сообщений всем устройствам, принадлежащим Пользователь.Уведомления пользователя GCM: отсутствует поле «registration_ids»
Однако, когда я отправить запрос, как это:
POST /gcm/send
Authorization: key=…
Content-Type: application/json
{"notification_key": "…",
"data": {…}
}
я получаю ответ об ошибке:
400 Bad Request
Missing "registration_ids" field
Отправка сообщения с использованием registration_ids
поле вместо notification_key
исправляет проблему (и сообщения доставляются), но весь смысл использования API-интерфейсов пользователей - использовать notification_key
вместо registration_ids
.
От documentation:
registration_ids
: [...] Запрос должен включать получатель-это может быть либо регистрационный номер, массив идентификаторов регистрации, или notification_key. Необходимые.
notification_key
: Строка, которая отображает одного пользователя к нескольким идентификаторам регистрации, связанные с этим пользователем. Это позволяет стороннему серверу отправлять одно сообщение нескольким экземплярам приложений (обычно на нескольких устройствах), принадлежащими одному пользователю. Сторонний сервер может использовать message_key как цель для сообщения, а не отдельный идентификатор регистрации (или массив идентификаторов регистрации). […] Необязательный.
В приведенном выше примере используется сервер HTTP-подключения по адресу https://android.googleapis.com
.
До сих пор я пытался:
- включая пустой массив для
registration_ids
, не помогает - посылает значение
notification_key
в качестве регистрационного идентификатора вregistration_ids
поле, не работает либо - установив заголовок
project_id
на наш номер проекта (как требуется при созданииnotification_key
), до сих пор не повезло - с использованием CCS (XMPP) вместо HTTP для связи с сервером API GCM, но к сожалению the IP is blocked on Google App Engine
- включая как
notification_key
иnotification_key_name
в запросе, не помогает
UPDATE: Согласно предложил here, я также попытался размещения полезной нагрузки на /gcm/notification
, с "operation": "send"
имущества, включенного в JSON запросить полезную нагрузку. Все равно никакой помощи. Теперь я получаю:
{"error":"Missing \"registration_ids\" field"}
То же самое, только на этот раз он отправляется обратно в JSON-кодированном виде.
'registration_ids 'это то, что вы получаете, когда устройство регистрируется в GCM. Сначала вы должны сохранить этот идентификатор в своей базе данных, а затем использовать его для отправки уведомлений. –
@SunilMishra Я могу использовать 'registration_ids' для создания' notification_key', а затем я должен использовать 'notification_key' * вместо * 'registration_ids'. –
Вы пробовали включить в запрос как 'notification_key', так и' notification_key_name'? – Eran