2017-11-22 9 views
0

내 서버에 저장된 PHP 스크립트를 사용하여 알림을 보내려고하고 있는데 MismatchSenderId가 표시됩니다. I에 유래 여기에 모든 단일 질문을 확인했고 그것을 해결할 수 {"multicast_id":7804476702639319453,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}firebase serverside로 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 스크립트를 실행할 때.

저는 firebase (스파크 플랜)을 사용하고 Phonegap으로 앱을 개발 중입니다. 나는 그 앱과 아무 상관이 없다고 믿는다.

어떤 아이디어 ???

답변

0

documentation for this error 상태 :

등록 토큰 발신자 특정 그룹에 연결된다. 클라이언트 앱이 FCM에 등록 할 때 메시지를 보낼 수있는 발신자를 지정해야합니다. 메시지를 클라이언트 응용 프로그램에 보낼 때 해당 발신자 ID 중 하나를 사용해야합니다. 다른 발신자로 전환하면 기존 등록 토큰이 작동하지 않습니다.

앱이 빌드 된 google-services.json 파일을 생성하는 데 사용 된 것과 동일한 프로젝트에서 서버 키를 사용하고 있는지 다시 한 번 확인해야합니다. google-services.json 파일의 상단에있는 project_number은 Firebase 콘솔의 프로젝트 설정 클라우드 메시징 탭에 표시된 보낸 사람 ID와 동일해야합니다.

+0

안녕 @Bob. 그것은. google-services 파일은 프로젝트의 루트 폴더 (config.xml과 같은 위치)에 있습니다. 그것은 www 폴더에 배치해야합니까? 감사합니다. –

+0

@RaffaeleColleo : 죄송합니다. 나는 코르도바 건축물에 익숙하지 않다. –

+0

누구든지이 문제에 대해 저를 도울 수 있습니까? –

1

google-service.json 파일을 루트 폴더 (www, config.xml 등)에 복사하십시오.

1 단계 : firebase 콘솔에 로그인하십시오.

enter image description here

2 단계 : 프로젝트 개요 설정에 의 클라우드 메시징 ServerKey

내 키 전 복사

`AAAAjXzVMKY:APA91bED4d53RX.....bla bla 

3 단계 : 키

교체를
define("API_ACCESS_KEY", "My key"); 

마지막으로 앱을 테스트합니다. D

노드를 사용하여 푸시 알림을 보냈습니다.

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) { 
 
\t if(err) console.error(err); 
 
\t else \t console.log(response); 
 
});

+0

나는 그것을했지만 여전히 MismatchSenderId를 얻는다.특정 도메인에서이 작업을 수행해야합니까,하지 않습니까? –

+0

@RaffaeleColleo이 Phonegap 푸시 알림 워크샵 [여기] (http://macdonst.github.io/push-workshop/)을 참조하십시오. –