Я пытаюсь отправить уведомление с помощью php-скрипта, который хранится на моем сервере, и я получаю MismatchSenderId.
$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:
{"multicast_id":7804476702639319453,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
Я проверил каждый вопрос здесь в stackoverflow и не смог решить его.
Я использую Firebase (Spark Plan) и разрабатываю приложение с PhoneGap. Я считаю, что это не имеет ничего общего с приложением
Есть идеи???
Скопируйте файл google-service.json в корневую папку (которая содержит www, config.xml и т. Д.).
Шаг 1:
Войдите в свою консоль Firebase.
Шаг 2:
В настройках обзора проекта скопируйте Cloud Messaging ServerKey
Мой ключ ex:
`AAAAjXzVMKY:APA91bED4d53RX.....bla bla
Шаг 3:
Заменить ключ
define( "API_ACCESS_KEY", "My key");
Наконец-то протестируй приложение: D
Я успешно отправил push-уведомление через узел.
var gcm = require('node-gcm');
// Replace these with your own values.
var apiKey = "MY_SERVER_KEY";
var deviceID = "MY_DEVICE_ID";
var service = new gcm.Sender(apiKey);
var message = new gcm.Message();
message.addData('title', 'Hi');
message.addData('body', 'BLA BLA BLA BLA');
message.addData('actions', [
{ "icon": "accept", "title": "Accept", "callback": "app.accept"},
{ "icon": "reject", "title": "Reject", "callback": "app.reject"},
]);
service.send(message, { registrationTokens: [ deviceID ] }, function (err, response) {
if(err) console.error(err);
else console.log(response);
});
документация для этой ошибки состояния:
Регистрационный токен привязан к определенной группе отправителей. Когда
клиентское приложение регистрируется для FCM, оно должно указывать, какие отправители
разрешено отправлять сообщения. Вы должны использовать один из этих идентификаторов отправителя, когда
отправка сообщений клиентскому приложению. Если вы переключитесь на другой
отправитель, существующие регистрационные токены не будут работать.
Вы должны дважды проверить, что вы используете ключ сервера из того же проекта, который использовался для создания google-services.json
файл, с которым было создано приложение. project_number
на вершине google-services.json
файл должен совпадать с идентификатором отправителя, указанным на вкладке «Настройки облачного обмена сообщениями» в консоли Firebase.