studio - notificaciones push android google cloud messaging(gcm)
¿Por qué obtengo "MismatchSenderId" del lado del servidor GCM? (8)
Intento crear un servicio de inserción para mi aplicación de Android, y sigo la documentación y el ejemplo de Google GCM para este asunto:
Puedo registrar / cancelar el registro de mi aplicación de Android. Desde mi servidor, puedo ver que tengo una suscripción registrada, pero cuando trato de enviar un mensaje desde el servidor a mi aplicación de Android siempre obtengo el siguiente error:
Error al enviar el mensaje al dispositivo n. ° 0: MismatchSenderId
Para mi aplicación de Android, uso SENDER_ID = 200000000001.
Y para mi lado del servidor como Google dice que utilizo API_KEY = AIzxxxxxxxxxxxxxxxxXxxXxxXxxxXXXXXxxxxs
Seguí este documento:
También habilité GCM en mi panel de API de Google, pero recibiré ese molesto mensaje de error.
¿Como puedo solucionar este problema?
¿Su servidor utilizó la nueva identificación de registro devuelta por el servidor GCM a su aplicación? Tuve este problema, si trato de enviar un mensaje a las ID de registro que me ha dado el viejo servidor C2DM.
Y también comprueba dos veces la Id. Del remitente y la API_KEY, deben coincidir o de lo contrario obtendrás el error MismatchSenderId. En Google API Console, mira la URL de tu proyecto:
https://code.google.com/apis/console/#project:xxxxxxxxxxx
Xxxxxxxxx es la ID del proyecto, que es la ID del remitente.
Y asegúrese de que la clave API pertenezca a ''Clave para aplicaciones de servidor (con bloqueo de IP)''
La discordancia ocurre cuando no usa la ID numérica. ¡La identificación del proyecto NO ES IDENTIFICADOR DEL REMITENTE! Me llevó 9 horas resolver esto. Para toda la confusión creada por google, consulte el siguiente enlace para obtener la identificación numérica.
https://console.cloud.google.com
en lugar de
https://console.developers.google.com
¡¡Espero eso ayude!!
Actualización: - Las cosas han cambiado nuevamente. Ahora la identificación del remitente está con firebase.
Vaya a https://console.firebase.google.com y seleccione su proyecto. En Configuración -> mensajería en la nube, puede encontrar la ID del remitente.
¡Y funciona!
Me encontré con el mismo problema recientemente y probé valores diferentes para "gcm_sender_id" según la identificación del proyecto. Sin embargo, el valor "gcm_sender_id" debe establecerse en el "Número de proyecto".
Puede encontrar este valor en: Menú> IAM y Administrador> Configuración.
Ver captura de pantalla: Número de proyecto GCM
Por favor, ejecute la secuencia de comandos a continuación en su terminal
curl -X POST /
-H "Authorization: key= write here api_key" /
-H "Content-Type: application/json" /
-d ''{
"registration_ids": [
"write here reg_id generated by gcm"
],
"data": {
"message": "Manual push notification from Rajkumar"
},
"priority": "high"
}'' /
https://android.googleapis.com/gcm/send
dará el mensaje si es exitoso o falló
Si usa Android nativo, verifique su archivo AndroidMaifest.xml
:
<meta-data
android:name="onesignal_google_project_number"
android:value="str:1234567890" />
<!-- its is correct. -->
en lugar
<meta-data
android:name="onesignal_google_project_number"
android:value="@string/google_project_number" />
¡¡Espero eso ayude!!
Su aplicación de Android necesita corregir el número de identificación de 12 dígitos (también conocido como Número de proyecto de GCM). Si este número de 12 dígitos es incorrecto, también obtendrá este error.
Este número de 12 dígitos se encuentra en su consola de Google Play en su aplicación específica, ''Servicio y API'' -> ''IDENTIFICADOR DE ENVÍO ENLACE''.
Use la ID del remitente y la clave API generada aquí: http://developers.google.com en su lugar (primero busque Mensajería en la nube de Google y siga las instrucciones).
InstanceID.getInstance(getApplicationContext()).getToken(authorizedEntity,scope)
authorizedEntity es el número de proyecto del servidor