web-dev-qa-db-fra.com

Quelle est la partie `Authorization` de la demande de publication http du message Google Firebase Downstream?

Je souhaite essayer d'envoyer un message à l'aide du service de messagerie FCM de Google. Comme le dit le document, la requête http devrait ressembler à ceci: 

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..."
}

Mon problème est que je n'ai aucune idée de ce que devrait être la valeur de Authorization et lorsque je supprime cet en-tête et fais la demande, j'obtiens l'erreur 401:Unauthorized. Quelqu'un peut-il m'aider?

PS: à des fins de test, j'utilise actuellement ce site pour envoyer un message à mon appareil

18
roostaamir

Selon À propos de Firebase Cloud Messaging Server documentation:

Authentification

Pour envoyer un message, le serveur d'applications envoie une demande POST. Par exemple:

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

Une demande de message est composée de deux parties: l'en-tête HTTP et le HTTP corps.

L'en-tête HTTP doit contenir les en-têtes suivants:

  • Autorisation: clé = YOUR_SERVER_KEY

    Assurez-vous qu'il s'agit bien de la clé serveur, dont la valeur est disponible dans la console de projet Firebase sous Paramètres du projet> Cloud Messaging. Les clés client ou toute autre clé sont rejetées par FCM.

  • Content-Type: application/json pour JSON; application/x-www-form-urlencoded;charset=UTF-8 pour le texte brut.

    Si Content-Type est omis, le format est supposé être du texte brut.

J'espère que ça aide!


UPDATE (2016/11/16)

Peut-être devriez-vous envisager d'utiliser le jeton FCM au lieu des clés du serveur comme note à l'intérieur de la capture d'écran suivante

 enter image description here


UPDATE (2016/12/08)

Firebase a mis à niveau les clés du serveur vers une nouvelle version et vous recommande de procéder à la mise à niveau vers la version la plus récente. S'il vous plaît voir la capture d'écran ci-dessous:

 enter image description here

26
BNK

j'ai aussi fait face à cette erreur. Le problème est avec la clé du serveur. N'utilisez pas la clé api du fichier google-services.json.

Vous devez utiliser la clé API du serveur de votre projet de console Firebase, dans l'onglet Clé de messagerie des clés de projet: https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging

1
Leo Much

C’est la clé de votre serveur que vous pouvez observer dans console.developers.google.com ou dans la console du projet Firebase sous Paramètres du projet> Messagerie dans le cloud. Notez la clé créée automatiquement par Google Services. Vous devez ajouter l'adresse IP inco G.Console pour limiter l'utilisation.

De plus, souvenez-vous de Content-Type: application/json, sinon vous obtiendrez Error = MissingRegistration.

0
Sergio Kosik