Php post请求中的fcm身份验证错误

Php post请求中的fcm身份验证错误,php,firebase,curl,google-cloud-messaging,firebase-cloud-messaging,Php,Firebase,Curl,Google Cloud Messaging,Firebase Cloud Messaging,我有一个应用程序使用fcm发送通知,当我通过控制台发送消息时,一切正常,但当我尝试通过phpcurl post或POSTANfirefox扩展发送消息时,即使使用密钥,也会出现身份验证错误 string304{错误:{代码:401,消息:请求缺少所需的身份验证凭据。应为OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。请参阅,状态:UNAUTHENTICATED} 我从firebase项目控制台得到了钥匙 我的php代码是 public function send_FCM()

我有一个应用程序使用fcm发送通知,当我通过控制台发送消息时,一切正常,但当我尝试通过phpcurl post或POSTANfirefox扩展发送消息时,即使使用密钥,也会出现身份验证错误

string304{错误:{代码:401,消息:请求缺少所需的身份验证凭据。应为OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。请参阅,状态:UNAUTHENTICATED}

我从firebase项目控制台得到了钥匙 我的php代码是

  public function send_FCM(){
// Method - 1
$fcmUrl = 'https://fcm.googleapis.com/v1/projects/anal.........719/messages:send';
$notification = array(
  "to"=>"/topic/cidade396",
  "notification"=>array(
    "body"=>"test 123"
  )
);
 $headers = [
    'Authorization: key=AIz.........9KWwy5BisxXYbA8',
    'Content-Type: application/json'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$fcmUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($notification));
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);
return true;
}
有人知道如何解决这个问题吗?

的文档中的示例显示授权标头值以Bearer not key=开头:

传统FCM使用您从Firebase控制台获得的密钥。使用您正在使用的FCM v1,您可以使用从服务帐户密钥创建的更安全的凭据。您可以在Firebase控制台的“项目设置”>“服务帐户”下下载服务帐户,然后单击“生成新私钥”。有关更多信息,请参阅。获取凭证的PHP说明如下

格式将是

Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

但它对API密钥不起作用。您需要传递Google凭据,您可以在上面的链接中找到如何生成凭据。

我现在尝试使用Bear和Bear key=但是dind't worked Just Bear not Bear key=如何获取访问令牌?使用我在回答中链接的文档中的说明?它不是项目设置的Clouding Messaging选项卡中遗留API中使用的服务器密钥。
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA