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 .

¿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?

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.

  • No recibe mensajes de GCM en Android después de que la aplicación se aleje de tareas recientes
  • ¿Cómo implementar múltiples notificaciones push de GCM en una sola aplicación?
  • Cómo obtener RegistrationID usando GCM en android
  • Android GCM: forma diferente de gestionar el envío dependiendo de si la aplicación es visible o no
  • No se puede resolver "com.google.android.gms.gcm.GcmReceiver"?
  • El error de referencia onnotification no está definido en la notificación de push cordova android
  • Firebase Expandable Notification Mostrar imagen cuando la aplicación está en segundo plano
  • Android push notificación servicio comparision
  • ¿Cómo configurar Google Cloud Messaging para Android?
  • ID canónico de GCM
  • Mensaje GCM de Android enviado correctamente pero no recibido
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.