Android GCM SENDER_ID, jak go zdobyć?


80

Próbuję przenieść się do GCMi mam problem z tym, SENDER_IDco muszę podać. Używam projektu demonstracyjnego z Google. W tym projekcie muszę, jeśli dobrze to rozumiem, dostarczyć SENDER_IDdo aplikacji plik CommonUtilities.java.

Podany przeze mnie SENDER_ID to klucz API, który zarejestrowałem na https://code.google.com/apis/console/ i ma postać: AIzaSyAxxxxxxx_xxxxxxxxxxxnoGZw(łącznie 40 znaków).

Używając tego ciągu, gdy SENDER_IDotrzymuję komunikat „BroadcastReceiver mHandleMessageReceiver”, pojawia się komunikat o błędzie: From GCM: error (INVALID_SENDER). .

Gdzie jest błąd? Podany przeze mnie ciąg nie jest SENDER_ID?

Dziękuję Ci.


Oto proces krok po kroku uzyskiwania identyfikatora nadawcy GCM i klucza API. - ajaxtown.com/article/…
Abhishek Saha

Odpowiedzi:


182

Nie, SENDER_ID to identyfikator projektu zarejestrowany w konsoli Google API. Powinien to być ciąg liczbowy. np. na URI przeglądarki, powinieneś zobaczyć to:

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

Identyfikator nadawcy to 4815162342

Zaktualizowana odpowiedź:

Google nie zaktualizował całkowicie swoich dokumentów. Powyższa odpowiedź jest stara i oparta na tej dokumentacji i wydaje się, że nadal nie jest aktualizowana.

Według zaktualizowanych dokumentów Google wydaje się, że numer projektu w Google API Console jest używany jako SENDER ID


1
Przeprowadziłem kilka eksperymentów - nie mogłem znaleźć pełnej odpowiedzi w Internecie iw końcu odkryłem, że sender_id to adres e-mail użyty do rejestracji w serwisie. Jeśli chcesz, aby Twoja odpowiedź została oznaczona jako zaakceptowana, edytuj ją.
Zelter Ady

3
Zelter, używając adresu e-mail jako sender_id, jest przestarzałym sposobem rejestracji w C2DM. Zobacz tutaj: developer.android.com/guide/google/gcm/c2dm.html , w sekcji „Zmiany klienta”: Migracja jest prosta! Jedyną zmianą wymaganą w aplikacji jest zastąpienie konta e-mail przekazanego w parametrze nadawcy intencji rejestracji identyfikatorem projektu wygenerowanym podczas rejestracji w nowej usłudze.
azgolfer

2
Dzięki azgolfer. Jak migracja może oczekiwać, że ktokolwiek to wie? To prawie tak, jakby Google robił wszystko, co w ich mocy, aby uczynić to tak trudnym, jak to tylko możliwe.
Eurig Jones

3
hej @azgolfer, czy możesz zaktualizować swoją odpowiedź na podstawie mojej odpowiedzi poniżej? stackoverflow.com/a/27020029/231768 GCM zmienił się z używanego identyfikatora projektu i używa numeru projektu
Adam

2
SENDER_ID można znaleźć w pliku google-services.json (plik konfiguracyjny) jako „project_number”: „12456789”.
Erdi

57

Zrobiłem dla najnowszej konsoli Google API .

Jak zdobyć SenderId:

Kroki :

  1. Otwórz konsolę Google API
  2. Utwórz projekt
  3. Kliknij ikonę menu po lewej stronie
  4. Kliknij Google Cloud Platform
  5. Otrzymasz SenderIdtam formę

Odniesienie:

wprowadź opis obrazu tutaj

Mam nadzieję, że to ci pomoże.


1
DZIĘKUJĘ tylko, że nie znalazłem tego wcześniej :)
srebrny

Uwaga: nigdy nie należy cenzurować, przerysowując coś, zamiast tego usuwać tę część, wybierając ją za pomocą narzędzia do pudełek. Zarówno Twój URI, jak i Projekt-ID są czytelne dla każdego, szczególnie dla kogoś o złych zamiarach.
Miejmy nadzieję, że

23

Przejdź do strony konsoli interfejsów API Google . Wybierz projekt, którego używasz z rozwijanego menu po lewej stronie. Wybierz Przegląd i teraz możesz Cię zobaczyć project number. To jest to, SENDER_IDczego musisz użyć

Innym sposobem uzyskania numeru projektu jest pobranie wartości „projektu” z adresu URL. Twój adres URL musi wyglądać następująco: „ https://code.google.com/apis/console/b/0/#project:886025556782 ”. Tutaj numer projektu to „886025556782”. ten numer to SENDER_ID


Co się stanie, jeśli mój adres URL z projektu nie pokazuje żadnego numeru? w rzeczywistości mój adres URL wygląda tak: „ console.developers.google.com/project/Project ID”
Priyank,

Priyank, zobacz moją odpowiedź. Google ostatnio to nieco zmieniło. stackoverflow.com/a/27020029/231768
Adam

9

Zaktualizowana odpowiedź z listopada 2014 r. JEŚLI OSTATNIO TWORZYŁEŚ PROJEKT API .

Przede wszystkim poprawne, absolutnie powinieneś przejść do Google Developers Console i znaleźć projekt, w którym masz włączoną GCM. Patrząc na sekcję Przegląd (panel nawigacyjny po lewej stronie), zobaczysz identyfikator projektu i numer projektu po prawej stronie. Identyfikator projektu zawiódł mnie (co mnie tutaj doprowadziło), ale kiedy wypróbowałem numer projektu, mogę teraz poprawnie rejestrować moich klientów.

Zwróć uwagę, że jest inaczej, ponieważ Google ostatnio zmodyfikowało sposób przypisywania identyfikatorów projektów. W październiku wykonałem projekt i otrzymałem numeryczny identyfikator projektu, który zakładam, że będzie działał dobrze. Ale ten, który stworzyłem dzisiaj, otrzymał identyfikator składający się z dwóch słów i numeru (np. Hamster-Party-420) oraz numeryczny numer projektu. Adres URL mojego projektu zawiera Hamster-Party-420, a numer projektu jest widoczny tylko na ekranie Przegląd.


6

Kolejna zaktualizowana odpowiedź z trochę większym wyjaśnieniem dla zdezorientowanego (... tak jak ja). (Z należnym uznaniem dla @azgolfer, @PankajAndroid i @Adam)

1- Jeśli utworzysz projekt na https://console.developers.google.com , w przeglądzie projektu zobaczysz dwie rzeczy: „ID PROJEKTU” i „NUMER PROJEKTU”. Identyfikator projektu nie jest już numeryczny, ale alfanumeryczny, jak master-xxxxx-1234 . Numer projektu to 11-cyfrowy numer, na przykład 123456789100.

projekt dashbaord

2- Nawet jeśli sprawdzisz link przeglądarki, możesz go znaleźć jako: https: // console.developers.google.com / project / master-xxxxx-1234

Czy więc master-xxxxx-1234 to SENDER_ID (w niektórych miejscach określany jako PROJECT ID)? NIE.

Musisz użyć numeru projektu jako identyfikatora projektu w GCM.

3- Gdzie można sprawdzić, czy identyfikator projektu jest używany jako identyfikator projektu?

Na API Dashbaord. (url: https://code.google.com/apis/console/b/0/?noredirect#project:12345678900 - gdzie 12345678900 to numer Twojego projektu w panelu projektu.

pulpit nawigacyjny Google API

PODSUMOWANIE: Identyfikatory projektu na pulpicie nawigacyjnym projektu i panelu interfejsu API są różne. Numer projektu w panelu projektu jest używany jako identyfikator projektu w panelu API, a identyfikator projektu w panelu projektu jako nazwa projektu w panelu interfejsu API. Tak więc numer projektu wyświetlany w panelu projektu podczas tworzenia projektu w konsoli programisty jest używany jako SENDER_ID w GCM.


4

Przejdź do „Pulpitu nawigacyjnego” w najnowszej wersji konsoli programisty, kliknij strzałkę w dół pod „Projekt: Turtle Power”, a zobaczysz tam numer projektu! Użyj tego jako SENDER_ID

(fałszywy projekt, więc nawet nie próbuj = P)

wprowadź opis obrazu tutaj



1

Spędziliśmy godziny, próbując to rozgryźć. Problem polegał na tym, że nasz manifest Androida nie zawierał identyfikatora nadawcy!



-3

używany SENDER_ID to nic innego jak klucz autoryzacji. SENDER_ID możesz znaleźć w swoich projektach URL stron konsoli interfejsów API Google

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

tutaj 8543162367 będzie twoim SENDER_ID, a także identyfikator projektu nie jest już numeryczny, jego alfanumeryczny lub tylko numeryczny lub tylko alfabetyczny cokolwiek, ale jego pozycja jest taka sama jak pokazana przeze mnie

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.