FCM与Postman - 请求缺少身份验证密钥(FCM令牌)

54

在此输入图片描述

//body 就像这样

{
    "to":
    "/topics/NEWS"
    ,
    "data":{
        "extra_information": "This is some extra information"
    },

//我需要提供的通知

"notification":{
            "title": "ChitChat Group",
            "text": "You may have new messages",
            "click_action":"ChatActivity"
        }
    }

这个答案可以帮助:https://dev59.com/qlUL5IYBdhLWcg3waXUr#62670409 - Ramis
5个回答

142

401错误表示您的授权密钥无效或不正确。

在使用Postman时,为Authorization的值添加key=前缀,就像这样:

key=AAA...

请参阅以下关于如何使用Postman发送下行FCM消息的教程。

此外,对于您的notification消息有效负载,text不是其中的有效参数,我认为您可能想用message代替。



使用Postman发送下行消息

Postman中进行操作,只需设置以下内容:

  1. 将请求类型设置为POST
  2. Headers中,设置以下内容:
  3. Body中设置有效负载参数(在本示例中,我们使用了原始格式(raw)选项,请参见屏幕截图(2))
  4. 将请求发送到https://fcm.googleapis.com/fcm/send

屏幕截图:

(1) enter image description here

注意:请始终将您的服务器密钥保密。此处仅显示了部分密钥,因此应该是安全的。

(2) enter image description here

(3) enter image description here

请注意,请求成功并在响应中返回了message_id


1
谢谢@AL。你帮我省去了大量的研究阅读!遗憾的是,在Firebase文档中没有提到Postman这个工具...我正在Windows下工作,但系统中没有内置的cURL - webprogrammer
1
@webprogrammer 不用谢。:) 实际上,我制作的指南曾经在StackOverflow文档中,但该服务在几个月前关闭了。我猜有很多选择可用,Firebase不想看起来像他们对某项服务有偏见。干杯! - AL.
@AL。获取消息ID,但未在FCM通知历史记录中创建,也未收到通知。 - Bhuvaneshwaran Vellingiri
3
你好!我也没有收到这条消息,但是发现通过更改第二张截图上的消息正文,推送消息就可以被接收到手机上了。 { "to" : "<我的 token>", "data" : { "body":"消息内容...", "title":"标题..", "score":"880", "time":"02:45" } } - rotoxl
如何在Postman中发送主题通知? - tinto mathew
显示剩余2条评论

22

错误:

Authorization:AIzaSyDDk77PRpvfhh......

正确:

Authorization:key=AIzaSyDDk77PRpvfhh......

完整示例:

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

2
是的!谷歌垃圾文档浪费了我的时间,https://firebase.google.com/docs/cloud-messaging/concept-options 中错误地使用了“token”而不是正确的“to”... - isabsent

6

1
谷歌文档太糟糕了。我已经看了几天,两个API的代码混在一起。 - Richard Muvirimi

1

我在 PHP 中也遇到了同样的错误,通过以下标头解决:

$header = array("authorization: key=" .  $this->apiKey . "","content-type: application/json");

0
使用Postman发送Firebase推送通知时,经常会遗漏key=。在键的前面添加key=作为前缀。 例如:key= AAA...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接