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:
- No se puede usar amarillo con el pequeño icono de Notificación de Nougat de Android
- Mensajería en la nube de Google: limitación de 100 remitentes múltiples
- La ID de GCM de Android genera devoluciones "MENSAJERO" en algunos casos mientras funciona correctamente en la mayoría de los casos. No se puede encontrar una causa
- ¿Dónde colocar el archivo google-services.json en el proyecto eclipse?
- Android GCM enciende las luces
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 camporegistration_ids
, no funciona - Estableciendo el encabezado
project_id
en nuestro número de proyecto (como se requiere al crear lanotification_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
ynotification_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.
- No puede enviar mensajes desde el servidor: Google Cloud Messaging
- Android - enviar sms en un hilo separado
- El registro de GCM no funcionó en mi emulador
- Iniciar la aplicación cuando se recibe la notificación de GCM
- Cómo gestionar los cambios de la ID de registro en Google Cloud Messaging en Android
- ¿Debo solicitar un nuevo token cada vez que lance mi aplicación para Android?
- ¿Cómo generar google-services.json para el proyecto existente de Google Android?
- ¿Cómo enviar medios desde el servidor a la aplicación Android?
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
- Enviar datos desde bluetooth android a PC con bluecove
- Facturación en aplicaciones v3 imposible de consultar elementos sin conexión de red o en modo avión / vuelo