Php 获取与firebase服务器端不匹配的SenderId
我试图使用存储在服务器中的php脚本发送通知,但得到的是不匹配的SenderidPhp 获取与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
$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推送通知研讨会