wake-up-neo.com

Was ist der `Authorization`-Teil der http post-Anfrage der Firebase Downstream-Nachricht von Google?

Ich möchte versuchen, eine Nachricht mit dem FCM-Nachrichtendienst von Google zu senden. Wie das Dokument sagt, sollte die http-Anfrage etwa so aussehen: 

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

Mein Problem ist, dass ich keine Ahnung habe, wie der Wert von Authorization aussehen sollte, und wenn ich diesen Header lösche und die Anforderung stelle, erhalte ich die Fehlermeldung 401:Unauthorized Ich denke, dass dies eine Art API-Schlüssel oder etwas sein muss, aber ich kann ihn nicht in meinem Projekt finden. Kann mir jemand helfen?

PS: Zu Testzwecken benutze ich derzeit diese Site , um eine Nachricht an mein Gerät zu senden

18
roostaamir

Gemäß Über Firebase Cloud Messaging Server Dokumentation:

Authentifizierung

Um eine Nachricht zu senden, sendet der App-Server eine Anforderung POST. Zum Beispiel:

https://fcm.googleapis.com/fcm/send

Eine Nachrichtenanforderung besteht aus zwei Teilen: dem HTTP-Header und dem HTTP Karosserie.

Der HTTP-Header muss die folgenden Header enthalten:

  • Berechtigung: Schlüssel = YOUR_SERVER_KEY

    Stellen Sie sicher, dass dies die Taste server ist, deren Wert in Ihrer Firebase-Projektkonsole unter Project Settings> Cloud Messaging verfügbar ist. Client-Schlüssel oder andere Schlüssel werden von FCM abgelehnt.

  • Inhaltstyp: application/json für JSON; application/x-www-form-urlencoded;charset=UTF-8 für Klartext.

    Wenn Content-Type weggelassen wird, wird angenommen, dass das Format Text ist.

Ich hoffe es hilft!


UPDATE (2016/11/16)

Vielleicht sollten Sie das FCM-Token anstelle der Serverschlüssel als Hinweis in der folgenden Abbildung in Betracht ziehen

 enter image description here


UPDATE (2016/12/08)

Firebase hat die Serverschlüssel auf eine neue Version aktualisiert. Es wird empfohlen, auf die neueste Version zu aktualisieren. Bitte sehen Sie den Screenshot unten:

 enter image description here

26
BNK

ich habe auch diesen Fehler erlebt. Das Problem betrifft den Serverschlüssel. Verwenden Sie nicht den API-Schlüssel aus der Datei google-services.json.

Sie sollten den Server-API-Schlüssel aus Ihrem Firebase-Konsolenprojekt unter den Projektschlüssel der Registerkarte "Cloud-Messaging" verwenden: https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging

1
Leo Much

Dies ist Ihr Serverschlüssel, den Sie in der Projektkonsole.developers.google.com oder der Firebase-Projektkonsole unter Projekteinstellungen> Cloud-Messaging beobachten können. Beachten Sie den von Google Services automatisch erstellten Schlüssel. Sie sollten die IP-Adresse inco G.Console hinzufügen, um die Verwendung einzuschränken.

Denken Sie außerdem an Content-Type: application/json, andernfalls erhalten Sie Error = MissingRegistration.

0
Sergio Kosik