Notificaciones de usuarios – ¿Cómo recuperar un notification_id perdido de GCM?
Genero notification_key
s como se describe aquí .
Supongamos que debido a algún error no lo almaceno, así que trato de volver a registrarme.
Esta vez recibo un error de 400 con el mensaje "notification_key already exists"
.
Esto parece extraño, especialmente en comparación con el registro de un dispositivo en GCM , donde puede registrarse tantas veces como desee y siempre obtiene el mismo ID de registro con el estado 200.
Ahora no puedo registrarme de nuevo, y tampoco puedo cancelar el registro, porque no tengo la notification_id
.
- GCM notificación de empuje funciona después de la aplicación de parada de la fuerza?
- Notificación push de Android GCM para aplicaciones de localización
- Notificaciones push en Android: Google GCM vs Amazon SNS?
- Error de autorización de GCM http 401
- Cómo anular onPushReceive () de ParsePushBroadcastReceiver?
¿Hay alguna manera de obtener la notification_key
anteriormente generada de GCM?
¿O es la única manera de registrarse de nuevo con un nombre de notification_key_name
diferente?
- Instalar jar con dependencias para el repositorio maven (Android gcm-server push library)
- Pruebas GCM, ¿cómo provocar una respuesta del servidor GCM con un canonical_id?
- Pasos básicos para usar MQTT en android
- ¿Es posible establecer un color de fondo para el icono en el cajón de notificaciones en Android si se utiliza Parse Push?
- ¿Por qué se prefiere usar GCM para notificaciones push?
- Cómo utilizar con eficacia XMPP persistente con android
- Dos servicios de notificación de empuje en android
- Ningún receptor de intenciones estableció AirShip Urbano
De acuerdo con los documentos, no hay forma de obtener de GCM la notification_key
de un nombre de notification_key_name
existente. Si piensa en ello, tiene sentido que intentar crear una nueva notification_key
para un notification_key_name
existente le daría un error, ya que si no fuera el caso, podría sobrescribir accidentalmente los ID de registro de una clave de notification_key
existente si sucede Para proporcionar un notification_key_name
existente por error.
Usted está comparando esto con el registro de un dispositivo a GCM varias veces, cada vez obtener el mismo ID de registro, pero no es una situación similar. Cuando registra un dispositivo en GCM, GCM tiene una manera de identificar el dispositivo y saber que ya está registrado y devolver el mismo ID de registro. Con las notificaciones de usuario, sólo tiene el notification_key_name
que ha proporcionado y no hay nada que impida utilizar el mismo notification_key_name
para varios usuarios. Es decir, hay algo que lo detiene: el error que obtuvo al intentar crear una notification_key
con un nombre de notification_key_name
previamente utilizado.
Una manera fácil de superar su problema es tratar notification_key_name
como un identificador único generado por su servidor. Si no tiene una notification_key
para un usuario determinado (ya sea porque es un usuario nuevo o porque no ha podido almacenar la notification_key
que obtuvo anteriormente de Google), genera un nuevo notification_key_name
y lo utiliza para crear una nueva notification_key
. No tiene que preocuparse por la antigua notification_key
que no pudo almacenar.
Por último, almacena tanto la notification_key
como la notification_key_name
en una tabla que contiene el identificador de usuario.
No puedo encontrar ninguna documentación sobre él, pero ahora es posible recuperar una notification_key
para un grupo de dispositivos haciendo una solicitud GET
a https://android.googleapis.com/gcm/notification?notification_key_name=my_notification_key_name con los encabezados que requieren: Authorization: key=my_key
, Content-Type: application/json
y project_id: my_id
.
Obtendrá una respuesta como
{ "notification_key": "lost_key" }
Si por casualidad usted conoce todos los ID de registro registrados en el grupo de dispositivos. A continuación, elimínelos todos y el grupo de dispositivos también se eliminará. Posteriormente, puede crear un grupo de dispositivos con el nombre de notificación utilizado anteriormente.
- ¿Cómo cambiar el fondo de la pestaña en las pestañas de viewpagerindicator?
- "Proyecto Android de App Engine conectado" no disponible