Android GCM SENDER_ID, ¿cómo se obtiene?

80

Intento migrar ay GCMtengo un problema con el SENDER_IDque necesito proporcionar. Utilizo el proyecto de demostración de google. En este proyecto necesito, si lo entiendo bien, proporcionar un SENDER_IDa la aplicación en el archivo CommonUtilities.java.

El SENDER_ID que proporcioné es la clave API que registré en https://code.google.com/apis/console/ y tiene este formulario: AIzaSyAxxxxxxx_xxxxxxxxxxxnoGZw(total 40 caracteres).

Usando esta cadena como SENDER_IDobtengo en "BroadcastReceiver mHandleMessageReceiver" un mensaje de error: De GCM: error (INVALID_SENDER). .

¿Dónde está el error? ¿La cadena que proporciono no es la SENDER_ID?

Gracias.

Zelter Ady
fuente
A continuación, se muestra un proceso paso a paso para obtener el ID del remitente y la clave de API de GCM. - ajaxtown.com/article/…
Abhishek Saha

Respuestas:

182

No, el SENDER_ID es el ID del proyecto que registró en la consola de API de Google, debe ser una cadena numérica. por ejemplo, en el URI de su navegador, debería ver esto:

https://code.google.com/apis/console/#project:4815162342

El ID del remitente es 4815162342

Respuesta actualizada:

Google no ha actualizado sus documentos por completo. La respuesta anterior es antigua y se basa en esta documentación y parece que todavía no está actualizada.

Según los documentos actualizados de Google , parece que el número de proyecto en la consola API de Google se utiliza como ID de remitente

azgolfer
fuente
1
Hice algunos experimentos: no pude encontrar una respuesta completa en Internet y al final descubrí que sender_id es el correo electrónico que se usa para registrarme en el servicio. Si desea que su respuesta sea marcada como aceptada, edítela.
Zelter Ady
3
Zelter, usar la dirección de correo electrónico como sender_id es la forma obsoleta de registro de C2DM. Vea aquí: developer.android.com/guide/google/gcm/c2dm.html , en 'Cambios de cliente': ¡La migración es simple! El único cambio requerido en la aplicación es reemplazar la cuenta de correo electrónico pasada en el parámetro del remitente de la intención de registro con el ID del proyecto generado al registrarse en el nuevo servicio.
azgolfer
2
Gracias azgolfer. ¿Cómo puede la migración esperar que alguien sepa esto? Es casi como si Google hiciera todo lo posible para hacerlo lo más complicado posible.
Eurig Jones
3
oye @azgolfer, ¿puedes actualizar tu respuesta según mi respuesta a continuación? stackoverflow.com/a/27020029/231768 GCM ha cambiado desde el ID del proyecto que se está utilizando, y usan un Número de proyecto
Adam
2
SENDER_ID se puede encontrar en el archivo google-services.json (archivo de configuración) como "project_number": "12456789".
Erdi
57

Lo he hecho para la última consola API de Google .

Como conseguir SenderId:

Pasos :

  1. Abra la consola de API de Google
  2. Crear proyecto
  3. Haga clic en el icono de menú del lado izquierdo
  4. Haga clic en Google Cloud Platform
  5. Llegarías de SenderIdallí

Referencia:

ingrese la descripción de la imagen aquí

Espero que esto te ayudará.

Hiren Patel
fuente
1
GRACIAS, solo desearía haber encontrado esto antes :)
plateado
Como nota, nunca debe censurar sobregirando algo, en su lugar, elimine esa parte seleccionándola con una herramienta de caja. Tanto su URI como su Projekt-ID son legibles para cualquier persona, especialmente para alguien con intenciones maliciosas.
HopefullyHelpful
23

Vaya a la página de la consola de API de Google . Seleccione el proyecto que utiliza en el menú desplegable de la izquierda. Seleccione Descripción general y ahora podrá verlo project number. Es lo SENDER_IDque tienes que usar

Otra forma de obtener su número de proyecto es obtener el valor de "proyecto" de su URL. Su URL debe ser así: " https://code.google.com/apis/console/b/0/#project:886025556782 ". Aquí el número de proyecto es "886025556782". este número es SENDER_ID

PankajAndroid
fuente
¿Qué pasa si mi URL del proyecto no muestra ningún número? de hecho, mi URL es como esta " console.developers.google.com/project/Project ID"
Priyank
Priyank, mira mi respuesta. Google cambió esto un poco recientemente. stackoverflow.com/a/27020029/231768
Adam
9

Una respuesta actualizada a noviembre de 2014 SI HA CREADO UN PROYECTO API RECIENTEMENTE .

En primer lugar, correcto, debe ir a la Consola de desarrolladores de Google y encontrar el proyecto en el que tiene habilitado GCM. Al mirar la sección Descripción general (panel de navegación de la izquierda), verá el ID del proyecto y el Número de proyecto enumerados en el lado derecho. El ID del proyecto me estaba fallando (que es lo que me llevó aquí), pero cuando probé el Número de proyecto, ahora puedo registrar a mis clientes correctamente.

Tenga en cuenta que esto es diferente porque Google modificó la forma en que asignan ID de proyecto recientemente. En octubre hice un proyecto y me dieron una ID de proyecto totalmente numérica, que supongo que funcionaría bien. Pero al que creé hoy se le dio una identificación de dos palabras y un número (como Hamster-Party-420) y un Número de Proyecto numérico. La URL de mi proyecto contiene Hamster-Party-420, y el número de proyecto solo es visible en la pantalla Descripción general.

Adán
fuente
6

Sin embargo, otra respuesta actualizada con un poco más de explicación para la confusión (... como yo). (Con el debido crédito a @azgolfer, @PankajAndroid y @Adam)

1- Si crea un proyecto en https://console.developers.google.com , puede ver dos cosas "ID DE PROYECTO" y "NÚMERO DE PROYECTO" en la descripción general del proyecto. El ID del proyecto ya no es numérico sino alfanumérico como master-xxxxx-1234 . El número de proyecto es un número de 11 dígitos como 123456789100.

proyecto dashbaord

2- Incluso cuando inspecciona el enlace del navegador, puede encontrarlo como: https: // console.developers.google.com / project / master-xxxxx-1234

Entonces, ¿master-xxxxx-1234 es el SENDER_ID (en algunos lugares se hace referencia como ID DE PROYECTO)? NO.

Debe usar el número de proyecto como identificación del proyecto en GCM.

3- ¿Dónde puede verificar que la identificación del proyecto se esté utilizando como identificación del proyecto?

En API Dashbaord. (url: https://code.google.com/apis/console/b/0/?noredirect#project:12345678900 - donde 12345678900 es su número de proyecto en el panel del proyecto.

panel de google api

RESUMEN: El ID del proyecto en el Panel del proyecto y el Panel de API son diferentes. El número de proyecto en el panel del proyecto se usa como ID del proyecto en el Panel de API y el ID del proyecto en el panel del proyecto como nombre del proyecto en el Panel de API. Por lo tanto, el número de proyecto que se muestra en el Panel de control del proyecto cuando creamos el proyecto en la consola del desarrollador se usa como SENDER_ID en GCM.

Diestro
fuente
4

Vaya a "Panel de control" en la última versión de la consola de desarrolladores, haga clic en la flecha desplegable debajo de "Proyecto: Turtle Power" y podrá ver el número del proyecto allí mismo. Úselo como su SENDER_ID

(proyecto falso, así que ni siquiera lo intentes = P)

ingrese la descripción de la imagen aquí

Micro
fuente
1

Pasamos horas tratando de resolver esto. ¡El problema era que nuestro manifiesto de Android no incluía la identificación del remitente!

Tyler Brock
fuente
-3

el SENDER_ID que está utilizando no es más que la clave de autorización. puede encontrar el SENDER_ID en la URL de las páginas de la consola de API de Google de sus proyectos

https://code.google.com/apis/console/#project:8543162367

aquí 8543162367 será su SENDER_ID, y también el ID del proyecto ya no es numérico, es alfanumérico o solo numérico o solo alfabético, pero su posición es la misma que la mostrada por mí.

sud
fuente