일전에 웹프로그래밍 언어 중 하나인 php로 푸시 메세지를 발송해야 하는 프로젝트가 있어 동작이 잘 되는 최종 코드를 정리해 두겠습니다.
언어는 php이고 푸시 발송 대상은 안드로이드가 되겠습니다.
아이폰(iOS) 대상 코드는 다음 포스팅으로 분리하겠습니다.
google api key는 이미 발급되어 있는 기준으로 갑니다.
아래 코드에 기재되어 있는 google api key는 임의의 값이므로 반드시 본인의 api key로 변경하시기 바랍니다.
define("GOOGLE_API_KEY", "AbCdEfGhIkKlMnOOpQrSt_xPi6SoHvpDlFyQOUqExWx");
오직 fcm을 이용하여 메세지를 전송을 담당하는 핵심 function 입니다.
androidpushserver 라는 function이구요.
이 함수의 인자값으로는 $token_result와 $msg 입니다.
각각은 토큰값과 발송할 메세지 스트링입니다.
아래 코드를 별도로 파일로 저장하여 include해 놓고 함수를 불러다 쓰시기만 하면 되겠지요.
실제 서버에서 서비스하고 있고 정상동작하는 소중한 코드입니다.
맨땅에서 헤딩하면서 피와 땀냄새 가득한 코드를 이렇게 아무런 댓가없이 공개합니다^^
<?php
// php용 안드로이드 푸시 발송 서버
define("GOOGLE_API_KEY", "AbCdEfGhIkKlMnOOpQrSt_xPi6SoHvpDlFyQOUqExWx");
function androidpushserver($token_result,$msg){
$url = 'https://fcm.googleapis.com/fcm/send';
$token[] = $token_result;
// 푸시의 제목과 메세지 내용
$bodys = array("tt" => "제목입니다", "msg" => "$msg");
$fields = array(
'data' => $bodys,
'registration_ids' => $token
);
$headers = array(
'Authorization:key =' .GOOGLE_API_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);
$res = json_encode($result);
$res2=json_decode($res,true);
$ch_result = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($ch_result == "200" && $res2[58] == 0){
$token_result = "success";
}
else{
$token_result = "fail";
}
curl_close($ch);
return $token_result;
}
?>
여기까지~!
아무쪼록 열심히 삽질하시는 많은 초보개발자분들에게 조금이나마 도움이 되셨으면 하는 마음입니다.
화이팅하세요~!
원격제어 무료 프로그램 애니데스크로 스마트폰과 pc를 제어하는 방법 (1) | 2022.03.28 |
---|---|
셀프등기 시 필요한 집합건축물대장 등본 발급하기 (정부24민원) (0) | 2022.02.08 |
IIS 헤더에 서버 정보 숨기기 (0) | 2021.12.01 |
[MSSQL] 링크드 서버(MySQL) 사용 시 openquery로 쿼리 속도 빠르게 하기 (0) | 2021.11.30 |
MSSQL cursor(커서)로 반복처리 예제 (0) | 2021.10.22 |
댓글 영역