Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对FCM执行POST请求时服务器密钥无效?_Javascript_Firebase_Push Notification_Firebase Cloud Messaging - Fatal编程技术网

Javascript 对FCM执行POST请求时服务器密钥无效?

Javascript 对FCM执行POST请求时服务器密钥无效?,javascript,firebase,push-notification,firebase-cloud-messaging,Javascript,Firebase,Push Notification,Firebase Cloud Messaging,我在跟踪推送通知,但我被它说的部分卡住了 要触发推送消息,请对此URL发出POST请求 在调用registration.pushManager.subscribe之前,我使用生成了公钥和私钥,并将公钥放入applicationServerKey密钥中,然后得到格式正确的JSON响应,但是我不确定如何准确地生成授权头,以便在发送通知的POST请求中使用。以下是来自subscribe的JSON响应: { "endpoint":"https://fcm.googleapis.com/fcm/sen

我在跟踪推送通知,但我被它说的部分卡住了

要触发推送消息,请对此URL发出POST请求

在调用
registration.pushManager.subscribe
之前,我使用生成了公钥和私钥,并将公钥放入
applicationServerKey
密钥中,然后得到格式正确的JSON响应,但是我不确定如何准确地生成
授权
头,以便在发送通知的POST请求中使用。以下是来自
subscribe
的JSON响应:

{
  "endpoint":"https://fcm.googleapis.com/fcm/send/asdf:qwer",
  "expirationTime":null,
  "keys":{"p256dh":"key","auth":"auth"}
}
我推测
/send
之后的部分应该放在
to
字段中,但我不确定如何格式化
授权
标题。当然,我需要以某种方式使用私钥,但我不确定如何使用

我的假设是,我需要对我的私钥、
p256dh
字段和
auth
字段执行某种操作,并且该结果将放在POST请求的
key=
字段中,但我找不到该字段的引用


您是否需要创建Firebase项目来执行此操作?我不确定情况是否如此。

是的,所有对Firebase产品和服务的访问都需要创建Firebase项目。不能使用任意键调用FCM。您必须使用已被授予调用API权限的服务帐户。

那么Google教程中提到的要点是什么?如果不能使用,为什么要生成密钥?我不知道。试着遵循FCM文档。我就是这么做的?Firebase不是谷歌所有吗?在他们的教程中正式提到了设置推送通知。“您可以通过访问来创建一组公共和私有的应用程序服务器密钥…”另外,VAPID背后的整个思想不就是您不需要创建Firebase项目吗?因此,您应该能够使用生成的私钥/公钥?正式的FCM文档可在此处找到: