GCM User Notifications: Falta el campo "registration_ids"

Nuestro proyecto ha sido incluido en la lista blanca para probar la nueva API de notificaciones de usuarios de GCM que permite agrupar las ID de registro a una sola "clave de notificación" que puede utilizarse para enviar mensajes a todos los dispositivos propiedad del usuario.

Sin embargo, cuando envío una solicitud como esta:

POST /gcm/send Authorization: key=… Content-Type: application/json {"notification_key": "…", "data": {…} } 

Recibo una respuesta de error:

 400 Bad Request Missing "registration_ids" field 

El envío de un mensaje utilizando el campo registration_ids lugar de la notification_key corrige el problema (y los mensajes se entregan), pero el punto de usar la API de notificaciones de usuario fue usar la notification_key lugar de los registration_ids .

De la documentación :

registration_ids : […] Una solicitud debe incluir un destinatario: puede ser un ID de registro, una matriz de ID de registro o una notificación_key. Necesario.

notification_key : Una cadena que asigna un solo usuario a varios ID de registro asociados con ese usuario. Esto permite que un servidor de terceros envíe un solo mensaje a varias instancias de aplicación (normalmente en varios dispositivos) propiedad de un solo usuario. Un servidor de terceros puede utilizar notification_key como destino de un mensaje en lugar de un ID de registro individual (o una matriz de ID de registro). […] Opcional.

El ejemplo anterior utiliza el servidor de conexión HTTP en https://android.googleapis.com .

Hasta ahora he intentado:

  • Incluyendo una matriz vacía para registration_ids , no ayuda
  • Enviar el valor de notification_key como un ID de registro en el campo registration_ids , no funciona
  • Estableciendo el encabezado project_id en nuestro número de proyecto (como se requiere al crear la notification_key ), aún no hay suerte
  • Utilizando CCS (XMPP) en lugar de HTTP para comunicarse con el servidor API de GCM, pero la IP está bloqueada en Google App Engine
  • Incluyendo notification_key y notification_key_name en la solicitud, no ayuda

ACTUALIZACIÓN: Según lo sugerido aquí , también intenté publicar la carga útil en /gcm/notification , con la "operation": "send" propiedad incluida en la carga útil de la petición JSON. Todavía no ayuda. Ahora tengo:

 {"error":"Missing \"registration_ids\" field"} 

Lo mismo, sólo que esta vez se envía de nuevo JSON-codificado.

La documentación es buggy, tienes que usar esta solicitud:

 curl -vvv -X POST --header "Content-Type: application/json" --header "project_id: <YOUR-PROJECT-ID>" --header "Authorization: key=<YOUR-PROJECT-SECRET-KEY>" --data @- "https://android.googleapis.com/gcm/send" << EOF { "to": "<NOTIFICATION-ID>", "data": {}, } EOF 

Por favor vea mi blog https://medium.com/appunite-edu-collection/d7df385b0ff4 para más detalles

  Have you got project_id for your project. If yes then have you included same at proper place. 

Mira esto

También conocí este problema "HTTP / 1.1 401 Unauthorized". Y, resolví el problema reemplazando la llave del API con la llave del hojeador.

Utilice una clave del explorador si su aplicación se ejecuta en un cliente.

Consulte el siguiente enlace: https://developers.google.com/console/help/new/#generatingdevkeys

  • Recibir notificación de empuje cuando la aplicación se ha detenido de forma forzada (Android).
  • ¿Debería llamar a WakeLock antes de crear una notificación?
  • Mensajería instantánea en Android con Google Cloud Messaging
  • ¿Cuál es la diferencia entre C2DM y GCM
  • Tengo esta respuesta del servidor GCM {"success": 1} Pero la notificación no llega al dispositivo
  • Cómo puedo saber los dispositivos registrados en mi nube de aplicaciones de GCM (Lista de dispositivos)
  • No se pueden recibir mensajes con Google Cloud Messaging para Android (no la biblioteca de ayuda)
  • GCMRegistrar getRegistrationId devolver ID vacío
  • Java.lang.RuntimeException: No se puede instanciar el servicio .GCMIntentService
  • Android parse push notificación y nuevo GCM generar token de dispositivo equivocado y analizar notificación push no funciona
  • ¿Podemos utilizar dos SENDER_ID de Google Cloud Messaging en una aplicación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.