이번에 골치아픈 프로젝트인 스프링기반의 자바웹서버에서 안드로이드앱으로 푸시알림을
보내야 하는 프로젝트를 진행중이였습니다. 어쩌다 보니 푸시 알림을 앱이 못 받아서
서버키가 문제인지 Device token이 문제인지 가장 간단한 디버깅 조건이 필요했습니다.
구글링을 해보니 PHP로 보내는 FCM소스가 있었으나 배열로 되어 있어서 배열 부분은 제거
하고 가장 간단하게 서버키와 Device token 1:1 로 바꿔봤습니다.
저같은 경우를 위해서 가장 간단한 fcm푸시 알림을 테스트 하기위한 PHP소스입니다.
<?php
function send_notification ($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$key = "서버키를 여기다 넣으세요";
$headers = array(
'Authorization:key =' . $key,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);?
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
$tokens = array();
$tokens[0] = "디바이스 토큰을 여기다 넣으세요";
$myMessage = "Message Test";
if ($myMessage == ""){
$myMessage = "Newly registered.";
}
$message = array("message" => $myMessage);
$message_status = send_notification($tokens, $message);
echo $message_status;
?>