2016-08-08 21 views
13

Próbuję użyć Postman, aby wysłać pojedyncze powiadomienie push przy użyciu usługi przesyłania wiadomości w chmurze Firebase.Wysyłanie wiadomości przez Listonosza za pomocą Firebase Messaging

To działa polecenie cURL dla tego samego szablonu, którego używam jako odniesienia.

curl -X POST --header "Authorization: key=<API_ACCESS_KEY>" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"<YOUR_DEVICE_ID_TOKEN>\",\"notification\":{\"body\":\"Firebase\"} \"priority":\"10"}" 

Co mam zrobić tak daleko ..

1 - Ustaw nagłówki odpowiednio

enter image description here

2- Na ciała używam raw

{ 
    "to" : "<YOUR_DEVICE_ID_TOKEN>" 
    , 

    "notification": { 
    "body": "Firebase Cloud Message" 
    } 

    } 

Podczas wykonywania otrzymuję zwrot 401 - Unauthorized.

Czego brakuje, aby prawidłowo wysłać powiadomienie push?

+0

{ "multicast_id": 4790719999662534961, "sukces": 0, "awaria": 1, "canonical_ids": 0, "Wyniki": [ { "błąd": "InvalidRegistration" } ] } Mam ten błąd –

Odpowiedz

21

Prawidłowy sposób skonfigurować Authorization klucza w nagłówku znajduje

key=<API_ACCESS_KEY>

i nie tylko

<API_ACCESS_KEY>

głupi błąd, ale ponieważ to może być przydatne dla kogoś do testowania Firebase Wiadomości z Postmanem Pozostawię pytanie otwarte.

6

Spójrz na poniższy zrzut ekranu jak klucz autoryzacji jest ustawiona

pozwolenia: ** klucz = ** abcdefghijklmnopr2qrst253uv124wxyz_9shg

enter image description here

14

księgowania FCM przez listonosza

ciała - aby to żeton id (powinny być generowane za pomocą tokena instancji) napisać ciało w surowej aplikacji binarnej/json body tye

{ 
    "to": "cpa8cZPjq-w:APA91bF122f1Rnhu9v47bL 
    YMajaNTHAIU5SzItDwTy9o2MCIveG0PlK78VPvp3d 
    CqjwnUKZ4 
    ngi1trSyM3_aXttW62iknFfbPGtjRLhZr6wq-3qFdboz8gzdOGPz**********", 

    "notification": { 

    "body": "Hello", 
    "title": "This is test message." 
    } 
    } 

nagłówek: powinien mieć pozwolenia: serwer klucza

Content type: application/json headerimage po zaksięgowaniu tutaj wiadomość sukcesu: success message image

+0

pracował jak urok !!! –

+0

jak dostać się do tokena? czy istnieje API? – Asymptote

+0

Przeczytaj dokumentację dla programistów z Androidem Firebase –

1

dla nowego FCM HTTP v1 API, tym Metoda testowania powiadomień wypychanych za pośrednictwem Postmana uległa zmianie, a istniejące rozwiązania dotyczyły tylko dotychczasowej metody testowania powiadomień wypychanych: https://firebase.google.com/docs/cloud-messaging/send-message

Aby przetestować na Postmanie z API FCM HTTP v1, musisz najpierw pobrać krótkoterminowy token Oauth 2.Można wygenerować jeden jako per informacji o Firebase miejscu tutaj: https://firebase.google.com/docs/cloud-messaging/auth-server

I generowane kopalni przy użyciu Python przy użyciu kodu poniżej - należy pamiętać, aby pip zainstalować pakiet, dzięki czemu można zaimportować pakiet w kodzie powodzeniem:

from oauth2client.service_account import ServiceAccountCredentials 

def _get_access_token(): 
    """Retrieve a valid access token that can be used to authorize requests. 

    :return: Access token. 
    """ 
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
     'service-account.json', FCM_SCOPE) 
    access_token_info = credentials.get_access_token() 
    return access_token_info.access_token 

Gdy masz token - można wstawić go do Postman na podstawie pozwolenia:

enter image description here

WAŻNE:

W moim przypadku zmagałem się trochę, aby to zadziałało, gdy próbowałem przetestować zaplanowane zadanie, które co kilka minut miało wysyłać powiadomienie push do FCM. Mam wydrukowany token do moich dzienników, a następnie wziąłem to token do mojego listonosza do testowania, nie zdając sobie sprawy, że został już wykorzystany w zaplanowanych połączeń do FCM.

W takim przypadku, ponieważ został już użyty, token nie będzie już ważny, a wszystkie testy Listonosza zawodzą. W takim przypadku będziesz musiał wygenerować nowe tokeny do testów Postmana.

Powiązane problemy