2015-11-03 12 views
9

Jestem zdezorientowany w związku między identyfikatorem rejestracji a tokenami. W samouczku dotyczącym GCM od Google rejestrujemy na początku identyfikator rejestracji. Dostajemy jednak także token. Teraz na diagramach wysyłamy identyfikator rejestracji do docelowego serwera. Czy jednak wysyłamy również token? Wiem, że token pochodzi z identyfikatora rejestracji. Czy token jest używany jako mechanizm uwierzytelniania między GCM a aplikacją, a serwer nigdy nie wie o tokenie?Google GCM, token kontra identyfikator rejestracji

Odpowiedz

19

Jeśli szukasz podstawowej wiedzy na temat Google Cloud Messaging, IMO, można zapoznać się z poniższym:

Zasadniczo trzeba zrobić etapy:

  1. Utwórz nowy projekt w Google Developers Console. W tym kroku dla uproszczenia wystarczy wziąć pod uwagę 2 wartości: Project Number, które zostanie użyte jako SENDER_ID w projekcie klienta; i API server key (utworzony w poświadczenia), które będą wykorzystywane jako API_KEY w projekcie serwera.
  2. Utwórz nowy prosty projekt Android po stronie serwera (podstawowym kodem źródłowym jest moja odpowiedź w poniższych odsyłaczach).
  3. Utwórz nowy prosty projekt dla Androida po stronie klienta (podstawowym kodem źródłowym jest moja odpowiedź w poniższych odsyłaczach, dostosowałem z oryginalnego źródła pod adresem Google Cloud Messaging - GitHub).
  4. Uruchom aplikację kliencką, otrzymasz token rejestracji (oznacza, że ​​Twoje urządzenie pomyślnie zarejestrowało numer). Następnie wklej (kod twardy) ten token w zmiennej CLIENT_REGISTRATION_TOKEN w aplikacji serwera (lub wpisz kod, aby wysłać token do aplikacji serwera).

można przeczytać więcej na następujące pytania, jeden z nich przeczytałeś wcześniej z jednej z poprzednich pytań:

  1. How to implement a GCM Hello World for Android using Android Studio
  2. Adding Google Cloud Messagin (GCM) for Android - Registration process

Dla więcej informacji:

Key Concepts z Google Cloud Messaging: Overview

poświadczenia

  • Sender ID Unikalna wartość liczbowa stworzony podczas konfigurowania projektu API (podaną jako "Project" w konsoli Google Developers). Identyfikator nadawcy jest używany w procesie rejestracji do identyfikacji serwera aplikacji, który może wysyłać wiadomości do aplikacji klienckiej.
  • Klucz interfejsu API Klucz API zapisany na serwerze aplikacji, który daje serwerowi aplikacji autoryzowany dostęp do usług Google. W HTTP klucz API to zawarty w nagłówku żądań POST, które wysyłają wiadomości.W XMPP, klucz API jest używany w żądaniu uwierzytelnienia SASL PLAIN jako hasło do uwierzytelnienia połączenia. Klucz interfejsu API uzyskasz, gdy skonfigurujesz projekt interfejsu API pod numerem .
  • Token rejestracyjny Identyfikator wydany przez serwery połączeń GCM do aplikacji klienckiej, który umożliwia odbieranie wiadomości. Pamiętaj, że tokeny rejestracji muszą być utrzymywane w tajemnicy.

Mam nadzieję, że to pomoże!

+0

Ok, więc serwer dba tylko o identyfikatorze rejestracji. W ogóle nie obchodzi go token. – mrQWERTY

+3

Token rejestracji = identyfikator rejestracji, który znajduje się w aplikacji klienckiej, następnie musisz podać go aplikacji serwera – BNK

+0

Być może masz na myśli SENDER_ID, co, jak powiedziałem w 1. kroku – BNK

12

GCM używa teraz koncepcji InstanceID, która reprezentuje pojedynczą instalację aplikacji na urządzeniu (Android lub iOS). Każdy identyfikator instancji może wydać kilka tokenów. Te żetony służą do identyfikacji identyfikatora wystąpienia i mogą wygasnąć oraz zostać odświeżone.

Na urządzeniu klienckim zainicjujesz identyfikator instancji, a następnie za pomocą tego identyfikatora instancji otrzymasz numer generate a token (token rejestracji). Wysyłasz token na serwer, który używa tokena do wysyłania wiadomości do InstanceID (zainstalowana aplikacja). Jeśli token zostanie unieważniony z dowolnego powodu, np. Gdy aplikacja zostanie odinstalowana lub zostanie naruszony token, a new token should be generated i wysłany na twój serwer.

+0

Czasami użytkownik wyjaśnia to lepiej niż google, nie wiem, czy to takie proste. dzięki. –

-1

ja wciąż z powodzeniem rejestracji z rejestracją metodą Id do dnia 11 maja 2016

if (checkPlayServices()) { 
      gcm = GoogleCloudMessaging.getInstance(this); 
      regid = getRegistrationId(context); 

      if (regid.isEmpty()) { 
       registerInBackground(); 
      } 
     } else { 
      Log.i(TAG, "No valid Google Play Services APK found."); 
     } 

APA91bHLUfr71D6K7VTrRH3LGiLFxGNr3qRi3xOB_yNl0fLYsqhlgYXxHzOhQx2WKgqZI3sqxa1ZPORa0-5YBZ1_OFLm9cEg1bTh7wtrpCsHW91MSs2BMIXrHEqyjj2TeoVxnAzA5U8s

Powiązane problemy