Android GCM SENDER_ID, wie bekomme ich es?

80

Ich versuche zu migrieren GCMund habe ein Problem mit dem, was SENDER_IDich bereitstellen muss. Ich benutze das Demo-Projekt von Google. In diesem Projekt muss ich, wenn ich das gut verstehe SENDER_ID, der Anwendung in der Datei CommonUtilities.java eine bereitstellen.

Die von mir angegebene SENDER_ID ist der API-Schlüssel, den ich unter https://code.google.com/apis/console/ registriert habe und der folgende Form hat: AIzaSyAxxxxxxx_xxxxxxxxxxxnoGZw(insgesamt 40 Zeichen).

Wenn SENDER_IDich diese Zeichenfolge bei "BroadcastReceiver mHandleMessageReceiver" verwende, wird eine Fehlermeldung angezeigt: Von GCM: Fehler (INVALID_SENDER). .

Wo ist der Fehler? Die Zeichenfolge, die ich zur Verfügung stelle, ist nicht die SENDER_ID?

Vielen Dank.

Zelter Ady
quelle
Hier finden Sie eine schrittweise Anleitung zum Abrufen der GCM-Absender-ID und des API-Schlüssels. - ajaxtown.com/article/…
Abhishek Saha

Antworten:

182

Nein, die SENDER_ID ist die Projekt-ID, die Sie an der Google API-Konsole angemeldet haben. Sie sollte eine numerische Zeichenfolge sein. Beispiel: In Ihrem Browser-URI sollte Folgendes angezeigt werden:

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

Die Absender-ID lautet 4815162342

Aktualisierte Antwort:

Google hat seine Dokumente nicht vollständig aktualisiert. Die obige Antwort ist alt und basiert auf dieser Dokumentation und es scheint, dass sie immer noch nicht aktualisiert wird.

Laut aktualisierten Google-Dokumenten wird anscheinend die Projektnummer in der Google API-Konsole als SENDER-ID verwendet

Azgolfer
quelle
1
Ich habe einige Experimente durchgeführt - ich konnte im Internet keine vollständige Antwort finden und am Ende stellte ich fest, dass die sender_id die E-Mail ist, mit der ich mich beim Dienst registriert habe. Wenn Sie möchten, dass Ihre Antwort als akzeptiert markiert wird, bearbeiten Sie sie bitte.
Zelter Ady
3
Zelter, der die E-Mail-Adresse als Absender-ID verwendet, ist die veraltete C2DM-Registrierungsmethode. Siehe hier: developer.android.com/guide/google/gcm/c2dm.html unter "Client-Änderungen": Migration ist einfach! Die einzige in der Anwendung erforderliche Änderung besteht darin, das im Absenderparameter der Registrierungsabsicht übergebene E-Mail-Konto durch die Projekt-ID zu ersetzen, die bei der Anmeldung für den neuen Dienst generiert wurde.
Azgolfer
2
Danke Azgolfer. Wie kann die Migration möglicherweise erwarten, dass jemand dies weiß? Es ist fast so, als würde Google alles daran setzen, es so schwierig wie möglich zu gestalten.
Eurig Jones
3
hey @azgolfer kannst du deine Antwort basierend auf meiner Antwort unten aktualisieren? stackoverflow.com/a/27020029/231768 GCM hat sich von der verwendeten Projekt-ID geändert und verwendet eine Projektnummer
Adam
2
SENDER_ID befindet sich in der Datei google-services.json (Konfigurationsdatei) als "project_number": "12456789".
Erdi
57

Ich habe für die neueste Google API-Konsole getan .

Wie bekomme ich SenderId:

Schritte :

  1. Öffnen Sie die Google API-Konsole
  2. Projekt erstellen
  3. Klicken Sie auf das Menüsymbol auf der linken Seite
  4. Klicken Sie auf Google Cloud Platform
  5. Sie würden dort SenderIdForm bekommen

Referenz:

Geben Sie hier die Bildbeschreibung ein

Hoffe das wird dir helfen.

Hiren Patel
quelle
1
DANKE, ich wünschte nur, ich hätte das früher gefunden :)
Silber
Als Hinweis sollten Sie niemals zensieren, indem Sie etwas überzeichnen, sondern diesen Teil löschen, indem Sie ihn mit einem Box-Tool auswählen. Sowohl Ihre URI als auch Ihre Projekt-ID sind für jeden lesbar, insbesondere für jemanden mit böswilliger Absicht.
Hoffentlich
23

Wechseln Sie zu Ihrer Google APIs Console-Seite . Wählen Sie das verwendete Projekt aus dem Dropdown-Menü links aus. Wählen Sie Übersicht und jetzt können Sie sehen project number. Es ist das, was SENDER_IDSie verwenden müssen

Eine andere Möglichkeit, Ihre Projektnummer zu erhalten, besteht darin, den Wert von "Projekt" von Ihrer URL abzurufen. Ihre URL muss folgendermaßen lauten: " https://code.google.com/apis/console/b/0/#project:886025556782 ". Hier lautet die Projektnummer "886025556782". Diese Nummer ist SENDER_ID

PankajAndroid
quelle
Was ist, wenn meine URL aus dem Projekt keine Nr. Zeigt? Eigentlich ist meine URL wie folgt: " console.developers.google.com/project/Project ID"
Priyank
Priyank, siehe meine Antwort. Google hat dies kürzlich ein wenig geändert. stackoverflow.com/a/27020029/231768
Adam
9

Eine aktualisierte Antwort ab November 2014, WENN SIE ZULETZT EIN API-PROJEKT ERSTELLT HABEN .

Richtig, zuerst sollten Sie unbedingt zur Google Developers Console gehen und das Projekt suchen, für das Sie GCM aktiviert haben. Wenn Sie sich den Abschnitt Übersicht (linkes Navigationsfeld) ansehen, sehen Sie auf der rechten Seite die Projekt-ID und die Projektnummer. Die Projekt-ID ist für mich fehlgeschlagen (was mich hierher geführt hat), aber als ich die Projektnummer ausprobiert habe, kann ich meine Kunden jetzt korrekt registrieren.

Beachten Sie, dass dies anders ist, da Google kürzlich die Zuweisung von Projekt-IDs geändert hat. Im Oktober habe ich ein Projekt erstellt und eine rein numerische Projekt-ID erhalten, von der ich annehme, dass sie gut funktionieren würde. Aber die, die ich heute erstellt habe, erhielt eine Zwei-Wort- und eine Nummern-ID (wie Hamster-Party-420) und eine numerische Projektnummer. Die URL zu meinem Projekt enthält Hamster-Party-420, und die Projektnummer ist nur auf dem Übersichtsbildschirm sichtbar.

Adam
quelle
6

Noch eine aktualisierte Antwort mit wenig mehr Erklärung für die Verwirrung (.. wie ich) (mit gebührender Anerkennung an @azgolfer, @PankajAndroid und @Adam)

1- Wenn Sie ein Projekt unter https://console.developers.google.com erstellen , sehen Sie in der Projektübersicht zwei Dinge: "PROJEKT-ID" und "PROJEKTNUMMER". Die Projekt -ID ist nicht mehr numerisch, sondern alphanumerisch wie master-xxxxx-1234 . Die Projektnummer ist eine 11-stellige Nummer wie 123456789100.

Projekt Dashbaord

2- Selbst wenn Sie den Browser-Link überprüfen, finden Sie ihn als: https: // console.developers.google.com / project / master-xxxxx-1234

Ist master-xxxxx-1234 also die SENDER_ID (an einigen Stellen als PROJECT ID bezeichnet)? NEIN.

Sie müssen die Projektnummer als Projekt-ID in GCM verwenden.

3- Wo können Sie überprüfen, ob die Projekt-ID als Projekt-ID verwendet wird?

Auf API Dashbaord. (URL: https://code.google.com/apis/console/b/0/?noredirect#project:12345678900 - wobei 12345678900 Ihre Projektnummer im Projekt-Dashboard ist.

Google API Dashboard

ZUSAMMENFASSUNG: Die Projekt- ID im Projekt-Dashboard und im API-Dashboard ist unterschiedlich. Die Projektnummer im Projekt-Dashbaord wird als Projekt-ID im API-Dashboard und die Projekt-ID im Projekt-Dashbaord als Projektname im API-Dashboard verwendet. Daher wird die Projektnummer, die im Projekt-Dashboard angezeigt wird, wenn wir ein Projekt in der Entwicklerkonsole erstellen, in GCM als SENDER_ID verwendet.

Dexter
quelle
4

Gehen Sie in der neuesten Version der Entwicklerkonsole zu "Dashboard", klicken Sie auf den Dropdown-Pfeil unter "Projekt: Turtle Power" und Sie können die Projektnummer genau dort sehen! Verwenden Sie das als Ihre SENDER_ID

(gefälschtes Projekt, also versuche es nicht einmal = P)

Geben Sie hier die Bildbeschreibung ein

Mikro
quelle
1

Wir haben Stunden damit verbracht, dies herauszufinden. Das Problem war, dass unser Android-Manifest die Absender-ID nicht enthielt!

Tyler Brock
quelle
-3

Die von Ihnen verwendete SENDER_ID ist nichts anderes als der Autorisierungsschlüssel. Sie finden die SENDER_ID unter der URL der Google APIs Console-Seiten Ihres Projekts

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

Hier wird 8543162367 Ihre SENDER_ID sein, und auch die Projekt-ID ist nicht mehr numerisch, sondern alphanumerisch oder nur noch numerisch oder nur alphabetisch, aber ihre Position ist dieselbe wie von mir gezeigt

sud
quelle