77 votes

Firebase 401 unauthorized error FCM (erreur non autorisée)

J'essaie de tester les API de messagerie Firebase Cloud car toutes les fonctionnalités ne sont pas disponibles dans la console (notamment la personnalisation des notifications lorsque l'application est en arrière-plan). Mais pour certaines raisons, je n'arrive pas à le faire fonctionner, et il affiche toujours l'erreur 401. J'ai cherché les raisons de ce problème, et j'ai essayé après avoir régénéré une nouvelle clé de serveur, mais l'erreur reste constante. Étonnamment, lorsque j'ai généré une nouvelle clé de serveur, elle n'est pas reflétée dans la console Firebase et elle affiche la clé de serveur comme vide. J'ai également essayé d'ajouter mon adresse IP à la liste blanche des IP du serveur, mais sans succès. J'ai joint une capture d'écran d'une demande que j'ai faite avec Postman (j'ai substitué la clé de serveur à la place de Clé du serveur .

Je suis coincé sur ce sujet depuis quelques heures et j'apprécierais vraiment un peu d'aide. enter image description here

0 votes

Essayez de générer une nouvelle clé et faites attention à définir : key-type=server (pas d'Android ou d'ios ou de navigateur) et ip-whitelist= laissez-le vide (cela autorisera tous les ips)

0 votes

J'ai généré une nouvelle clé à nouveau, le type est serveur. J'ai laissé l'ip-whitelist vide. Toujours le même résultat :(. Je voulais juste savoir s'il y avait une erreur dans la façon dont je faisais la demande ?

0 votes

La requête semble correcte. Essayez peut-être d'utiliser curl et postez la sortie complète de la demande et de la réponse. Si vous ne trouvez pas de solution, veuillez contacter le support Firebase : firebase.google.com/support/contact/bugs-features

248voto

SeanZom Points 1819

Je ne sais pas si quelqu'un utilise la [Web API Key] comme [YOUR_SERVER_KEY] pour le test POSTMAN et continue à obtenir '401 Error'. La [Web API Key] n'est pas [YOUR_SERVER_KEY].

Vous devriez aller dans votre console Firebase et vérifier ceci :

pour obtenir la bonne clé de serveur.

J'espère que cela vous aidera.

0 votes

J'essaie d'utiliser la clé du serveur mais l'erreur suivante persiste invalid token Quelqu'un peut-il me dire ce que je fais de mal ?

37voto

Arthur Thompson Points 6455

J'ai remarqué sur votre capture d'écran que vous utilisiez "key : serverKey". Pourriez-vous essayer d'utiliser "key=serverKey" à la place ?

Il n'est pas non plus nécessaire d'avoir "POST fcm.googleapus.com/fcm/send" ; ce n'est pas un json correct et cela expliquerait l'erreur que vous voyez. L'URL de la requête est déjà définie ailleurs, alors supprimez-la des données utiles.

1 votes

Ì obtenir ce résultat : JSON_PARSING_ERROR : Unexpected character (P) at position 0.

0 votes

Pourriez-vous ajouter la charge utile json à votre réponse afin que le texte complet du json soit visible ?

1 votes

Vous n'avez pas besoin d'avoir "POST". fcm.googleapus.com/fcm/send "ce n'est pas un json correct et cela explique l'erreur que vous voyez. L'URL de la requête est déjà définie ailleurs, il faut donc la supprimer de la charge utile.

20voto

Karim Points 191

J'ai rencontré le même problème.

le problème était que j'utilisais l'ancienne clé de serveur. lorsque j'ai utilisé la nouvelle version de la clé de serveur, le problème a été résolu.

Dans votre console Firebase, allez dans Paramètres -> Messagerie en nuage.

puis utilisez la nouvelle clé de serveur. Elle est plus longue que la clé de l'ancienne version.

19voto

Omar Makled Points 372

Aller à https://console.firebase.google.com/u/0/project/[nom-du-projet]/réglages/cloudmessaging/

Project credentials

vous pouvez utiliser la clé de serveur ou la clé de serveur Legacy

4 votes

J'ai fait une erreur en utilisant "Web API Key". Il y a tellement d'informations d'identification qui me rendent confus.

2voto

Sugam Mankad Points 21

Je suis aussi confronté au même problème... J'utilise curl en php pour poster et cela ne fonctionne que si j'ai des fichiers php stockés sur mon serveur LocalHost. Lorsque j'essaie d'utiliser l'accès aux fichiers via un hébergement gratuit en ligne, alors il dit Unautorized 401.

Je vous suggère donc, si vous le pouvez, d'utiliser le Localhost.

0 votes

P.S. Dans FCM il y a une méthode pour autoriser plusieurs clients d'accès comme Goolge Chrome ou Android client ou etc. J'essaie de comprendre si c'est ce qui donne l'erreur de Unauthorized, peut-être que nous devrons lister Chrome ou n'importe quel navigateur comme un client utilisateur dans notre projet FCM Console.

9 votes

Je viens de résoudre le problème pour moi, j'ai changé la clé API du serveur, qui est donnée sur l'onglet Messagerie en nuage, dans la Console FCM. Dans Aperçu du projet, Gérer, il y a l'onglet Messagerie en nuage, il montre une utilisation SERVER API KEY qui peut être.

1 votes

Le deuxième commentaire m'a donné satisfaction. documents officiels de la FCM Ils vous demandent de cliquer sur "<Icône d'araignée> -> Permissions -> Comptes de service", puis de créer un nouveau compte de service pour votre serveur. Cela permettra de télécharger un .json contenant une clé, cependant la clé à l'intérieur ne permet pas l'accès à l'API . En cliquant sur "Manage -> Cloud Messaging", vous obtiendrez la clé API correcte. Ignorez les documents officiels si vous voulez que FCM fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X