Ich versuche, Postman zu verwenden, um eine einzige Push-Benachrichtigung mit Firebase
Cloud Messaging-Dienst zu senden.
Dies ist ein funktionierender cURL
-Befehl für denselben Zweck, auf den ich als Referenz verwende.
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"}"
Was ich bisher gemacht habe ..
1 - Stellen Sie die Header entsprechend ein
2- Bei Body verwende ich raw
{
"to" : "<YOUR_DEVICE_ID_TOKEN>"
,
"notification": {
"body": "Firebase Cloud Message"
}
}
Beim Ausführen bekomme ich 401 - Unauthorized
zurück.
Was fehlt, um die Push-Benachrichtigung korrekt zu senden?
Die korrekte Methode zum Einrichten des Schlüssels Authorization
am Header ist
key=<API_ACCESS_KEY>
und nicht nur
<API_ACCESS_KEY>
Dummer Fehler, aber da dies für jemanden nützlich sein könnte, um Firebase Messaging mit Postman zu testen, lasse ich die Frage offen.
FCM über POSTMAN buchen
Body-to-Token-ID (sollte über Instanz-Token generiert werden) schreibe Body in Raw Binäranwendung/json
{
"to": "cpa8cZPjq-w:APA91bF122f1Rnhu9v47bL
YMajaNTHAIU5SzItDwTy9o2MCIveG0PlK78VPvp3d
CqjwnUKZ4
ngi1trSyM3_aXttW62iknFfbPGtjRLhZr6wq-3qFdboz8gzdOGPz**********",
"notification": {
"body": "Hello",
"title": "This is test message."
}
}
header: sollte die Berechtigung haben: Serverschlüssel
Inhaltstyp: application/json Nach dem Posten hier die Erfolgsmeldung:
Öffne Postman, klicke auf Enter request URL
Textfeld, geben Sie die Firebase-URL ein
https://fcm.googleapis.com/fcm/send
Ändern Sie dann den Anforderungstyp in POST
. Siehe unten Screenshot:
Klicken Sie nun auf Header und fügen Sie zwei params
Content-Type
und Authorization
.
Content-Type= application/json
Authorization=AIzaSyAEb3NhsfGw1ih5mn8cmrGUAXMp86waQ //FCM SERVER KEY
Siehe unten Screenshot:
Klicken Sie nun auf Body
und wählen Sie Row
aus. Fügen Sie dann wie unten beschrieben einen Wert als Objekt hinzu
{
"to":"eB5papU2Xdc:APA91bFFvc3dXru1fN5JY8U19oHIpfGhPUx7Ll7v9vJYTsIGZ15mDwB2Wpep3flLK85IUqqs2WqJwjYHSDYX28oJ1wTP0R2TDc2ba_uVjUauDcp3pCNKr_0KlghOnS",
"notification" : {
"body" : "New announcement assigned",
"OrganizationId":"2",
"content_available" : true,
"priority" : "high",
"subtitle":"Elementary School",
"Title":"hello"
},
"data" : {
"priority" : "high",
"sound":"app_sound.wav",
"content_available" : true,
"bodyText" : "New Announcement assigned",
"organization" :"Elementary school"
}
}
Nun würde Ihr Postbote so aussehen. Klicken Sie oben rechts auf die Schaltfläche Senden .
Viel Glück!
Für die neue FCM-HTTP-v1-API hat sich die Testmethode für Push-Benachrichtigungen über Postman geändert, und die vorhandenen Lösungen befassten sich nur mit der älteren Testmethode für Push-Benachrichtigungen: https://firebase.google.com/docs/cloud-messaging/ Nachricht senden
Um auf Postman mit der FCM-HTTP-v1-API zu testen, müssen Sie zunächst ein kurzlebiges Oauth 2-Token abrufen. Sie können hier gemäß den Informationen auf der Firebase-Site einen generieren: https://firebase.google.com/docs/cloud-messaging/auth-server
Ich habe meins mit Python mit dem folgenden Code generiert - denken Sie daran, das Paket zu installieren, damit Sie das Paket erfolgreich in Ihren Code importieren können:
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
Sobald Sie das Token haben, können Sie es unter Autorisierung in Ihren Postman einfügen:
WICHTIG:
In meinem Fall hatte ich mich ein wenig darum gekümmert, dass dies funktionierte, als ich versuchte, eine geplante Aufgabe zu testen, bei der alle paar Minuten eine Push-Benachrichtigung an FCM gesendet wurde. Ich hatte das Token in meine Protokolle geschrieben und dann mitgenommen Dieses Token an meinen Postman zum Testen, ohne zu wissen, dass es bereits in den geplanten Aufrufen von FCM verwendet wurde.
In diesem Fall ist das Token nicht mehr gültig, da es bereits verwendet wurde und meine Postman-Tests alle fehlgeschlagen sind. In diesem Fall müssen Sie frische Token für Ihre Postman-Tests generieren.
POST https://fcm.googleapis.com/v1/projects/projectID/messages:send
Header:
Authorization:Bearer ya29.c.ElrXBjdxUzOI................o7_Y2shX2Je4tEe0
body:
{
"message": {
"token": "dlqj05MCnNI:APA91bGhCX6NhT.................QDpKhGheHyhhJ6T",
"Android": {
"notification": {
"title": "New Content!",
"body": "A new video has been uploaded.",
"icon": "your_icon"
}
}
}
}
Stellen Sie sicher, dass Sie den Inhaltstyp: application/json-Header angeben
es schlägt mit einem irreführenden Fehler fehl, wenn Sie den Inhaltstypheader nicht einschließen, der besagt:
Überprüfen Sie Folgendes: FCM-Benachrichtigung mit POSTMAN testen! }
Hinweis: Firebase hat unsere Serverschlüssel auf eine neue Version aktualisiert. Du darfst Verwenden Sie weiterhin Ihren alten Serverschlüssel, es wird jedoch empfohlen, dass Sie Upgrade auf die neueste Version.
Header hinzufügen Autorisierung: key=<legacy_server_key>
OR Authorization: key=<server_key>
und Content-Type: application/json.
Wählen Sie nun Body> raw> JSON (application/json) und fügen Sie folgenden Code hinzu:
{
"to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
"collapse_key" : "type_a",
"notification" : {
"body" : "Body of Your Notification",
"title": "Title of Your Notification"
},
"data" : {
"body" : "Body of Your Notification in Data",
"title": "Title of Your Notification in Title",
"key_1" : "Value for key_1",
"key_2" : "Value for key_2"
}
}
Ich habe die POSTMAN Collection für Sie erstellt, Direkt im Postboten ausführen.
Hoffe es wird dir helfen.