Php 获取与firebase服务器端不匹配的SenderId

Php 获取与firebase服务器端不匹配的SenderId,php,firebase,firebase-cloud-messaging,phonegap,Php,Firebase,Firebase Cloud Messaging,Phonegap,我试图使用存储在服务器中的php脚本发送通知,但得到的是不匹配的Senderid $to="device_id"; $title="MYAPP Push"; $message=" MYAPP Push Notification Message"; sendPush($to,$title,$message); function sendPush($to,$title,$message){ // API access key from Google API's Console // re

我试图使用存储在服务器中的php脚本发送通知,但得到的是不匹配的Senderid

$to="device_id";
$title="MYAPP Push";
$message=" MYAPP Push Notification Message";

sendPush($to,$title,$message);

function sendPush($to,$title,$message){
  // API access key from Google API's Console
  // replace API
  define( "API_ACCESS_KEY", "server_key_provided_by_firebase");

  $registrationIds = array($to);

  $msg = array(
    'message' => $message,
    'title' => $title,
    'vibrate' => 1,
    'sound' => 1
    // you can also add images, additionalData
  );

  $fields = array(
    'registration_ids' => $registrationIds,
    'data' => $msg
  );

  $headers = array(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
  );

  $ch = curl_init();
  curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
  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( $fields ) );
  $result = curl_exec($ch );

  curl_close( $ch );
  echo $result;
}
下面是运行php脚本时出现的错误: {多播_id:7804476702639319453,成功:0,失败:1,规范_id:0,结果:[{error:mistchsenderid}]}

我已经检查了stackoverflow中的每一个问题,无法解决它

我正在使用firebase spark plan并使用Phonegap开发应用程序。我相信这与应用程序无关

有什么想法吗?

州政府:

注册令牌绑定到特定的发送者组。当 客户端应用程序为FCM注册,它必须指定要注册的发件人 允许发送消息。您应该在以下情况下使用其中一个发件人ID: 向客户端应用程序发送消息。如果你换一个不同的 发件人,现有注册令牌将不起作用


您应该仔细检查是否使用了用于生成应用程序构建时使用的google-services.json文件的同一项目中的服务器密钥。google-services.json文件顶部的project_编号必须与Firebase控制台的project settings Cloud Messaging选项卡中显示的发件人ID相同。

将google-service.json文件复制到包含www、config.xml等的根文件夹中

步骤1: 登录firebase控制台

步骤2: 在项目概述设置中,复制云消息服务器密钥

我的钥匙:

`AAAAjXzVMKY:APA91bED4d53RX.....bla bla
步骤3: 更换钥匙

define( "API_ACCESS_KEY", "My key");
最后测试应用程序:D

我成功地使用节点发送了推送通知

var gcm=需要“节点gcm”; //用你自己的价值观代替这些。 var apiKey=我的服务器密钥; var deviceID=我的设备ID; var服务=新的gcm.SenderapiKey; var消息=新的gcm消息; message.addData'title','Hi'; message.addData'body','blablablablabla'; message.addData'actions'[ {图标:接受,标题:接受,回调:app.accept}, {图标:拒绝,标题:拒绝,回调:app.reject}, ]; service.sendmessage,{registrationTokens:[deviceID]},函数错误,响应{ ifer console.error; else-console.logresponse;
};嗨,鲍勃。它是。google services文件位于项目的文件夹根目录中,与config.xml位于同一位置。是否应将其放置在www文件夹中?Thanks@RaffaeleColleo对不起,我不知道。我不熟悉Cordova构建。有人能帮我解决这个问题吗?我做了,但仍然得到不匹配的Senderid。我是否必须从特定域执行此操作?@RaffaeleColleo请参阅此Phonegap推送通知研讨会