상세 컨텐츠

본문 제목

JSON_PARSING_ERROR: Unexpected token END OF FILE at postion FCM PUSH 한글발송시 오류메시지

IT공부방/안드로이드 Android

by 동해둘리 2019. 1. 11. 18:56

본문

반응형




PHP 페이지에서 FCM PUSH 메시지를 보내는 경우, 

캐릭터셑의 종류에 따라 오류가 발생하는 경우가 있습니다



JSON_PARSING_ERROR: Unexpected token END OF FILE at position 0 



예를 들어 PHP 쪽 페이지의 문자셑이 euc-kr 인 경우 위와 같은 에러메시지가 발생되고는 하는데요,



이때는 발송하기 전에 보내는 문자를 utf-8 로 변경해 주여야 합니다



아래와 같이 title 과 message 를 보낸다고 할경우, 

각각의 변수를 iconv 함수를 이용하여 utf-8 로 변경한 후 발송하면 됩니다.



$sTitle = $_POST['title'];

$sTitle = iconv("euc-kr","utf-8",$sTitle); 


$sMessage = $_POST['message']; 

$sMessage = iconv("euc-kr","utf-8",$sMessage); 


$inputData = array("title" => $sTitle , "body" => $sMessage );



아울러, 길이문제 때문에 오류가 발생하는 경우도 있습니다
이때는 headers 부분에 있는 Content-length 라인을 삭제하시면 됩니다. 


$headers = [

    'Content-Type: application/json',

    'Content-length: '.sizeof(json_encode($payload)),

    'Authorization: key='.FIREBASE_KEY

];


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($payload));


$result = curl_exec($ch );

curl_close($ch);


return $result;








반응형

관련글 더보기

댓글 영역