2016-07-18 17 views
8

Używam Firebase Cloud Messaging (FCM) i jak za skrócony kod poniżej za każdym razem, gdy nowy Token jest generowany na urządzeniu klienta ... Wysyłam to nowe TOKEN do mojego SERVER DB (Cloud), gdzie zapisuję go, aby być w stanie wysłać przyszłe Powiadomienie Push z serwera do urządzenia za pomocą API CFM.Firebase Cloud Messaging - Jak weryfikować tokeny?

//public class CFMInstanceIDService extends FirebaseInstanceIdService ... 

    public void onTokenRefresh() { 
     ... 
     String cfmToken = FirebaseInstanceId.getInstance().getToken();   
     ...  
     sendRegistrationToServer(customerGuid, cfmToken); 
    } 

Dzięki temu mam na serwerze listę WSZYSTKICH (wielokrotności) urządzeń, na których zalogowany jest Klient. (Tablet, telefon, iPhone, Android itp.)

Czy istnieje sposób weryfikacji/weryfikacji tokena w dowolnym momencie?

Chciałbym wiedzieć/upewnić się, że wszystkie tokeny, które powiązałem z klientem, należą do rzeczywistych Urządzeń. Nie chcę wysyłać powiadomień push do nieistniejących już tokenów.

Odpowiedz

7

No coś takiego istnieje, tylko informacje można uzyskać z tokena jest aplikacja informacje, a nie pogoda jest ważne lub nie

https://developers.google.com/instance-id/reference/server#get_information_about_app_instances

co należy robić patrzy na odpowiedź, kiedy przejść do wysyłania naciskać klawisze, a jeśli nie obowiązują już odpowiedź powie, co klucze powinny być usunięte z NotRegistered

https://firebase.google.com/docs/cloud-messaging/server

+1

Podczas korzystania z punktu końcowego identyfikatora instancji można sprawdzić informacje o tokenie, a odpowiedź wskaże (nie), że token jest nieprawidłowy, ponieważ nie ma informacji o tokenie lub jeśli token jest nieprawidłowy format. –

2

nie ma w ay do sprawdzenia, czy token jest nadal ważny przed wysłaniem wiadomości niższego rzędu. Należy sprawdzić odpowiedź po wysłaniu wiadomości, a następnie sprawdzić, czy odpowiedź zawiera błąd.

Na przykład, jeśli serwer zwróci kod http 200 + error:NotRegistered, oznacza to, że istniejący token rejestracji może przestać być ważny.

W sekcji "Downstream message error response codes of FGC" znajdziesz udokumentowane wszystkie możliwe odpowiedzi na status.

3

Oto przykład curl wniosek, który pokazuje w jaki sposób zweryfikować tokenu bez konieczności rzeczywiście wysłać wiadomość:

curl -H "Content-Type: application/json" -H "Authorization: key=$FCM_API_KEY" https://fcm.googleapis.com/fcm/send -d '{"registration_ids":["$FCMTOKEN"]}' 

Przykład nieprawidłową odpowiedź:

{"multicast_id":7452350602151058088,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]} 

Przykład prawidłowych odpowiedzi:

{"multicast_id":9133870199216310277,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1502817580237626%f590ddc2f9fd7ecd"}]} 

Otrzymałem tę odpowiedź od zespołu obsługi firebase google.

Powiązane problemy