본문 바로가기
PHP

PHP FCM 서버 연동하기

by square_man_tile 2021. 1. 26.
반응형

세상 간단한 php fcm 서버 연동하기

 

우선, fcm 서버 정보를 저장할 변수를 하나 만들겠습니다.

$fcmVal = curl_init("https://fcm.googleapis.com/fcm/send");

 

그리고 fcm 서버에 보낼 데이터를 만들어줍니다.

먼저 헤더..

$header = array("Content-Type:application/json", "Authorization:key=".$serverKey);

$serverKey 변수에 들어갈 값은 firebase 콘솔 페이지의 프로젝트 설정에서 확인 가능합니다.

 

실질적으로 푸시메시지에 담을 내용을 만들어줍니다.

$data = json_encode(array(
         "data"=>array("body"=>"MESSAGE HERE", "title"=>"TITLE_HERE"),
         "registration_ids"=>$my_ids
       ));

여기서 $my_ids 변수에 들어갈 내용은, 푸시메시지를 받을 대상들의 fcm 토큰 값입니다.

$my_ids는 array형태여야 합니다. ex) $my_ids = array('device token1' , 'device token2', ...);

대상이 1개일 때, 그리고 2개 이상일 때의 코드가 다르다고 하는데.. 저는 위 방법으로 해도 두가지 경우 모두 전송이 잘 됐습니다.

 

이제 헤더와 데이터를 fcm 서버에 전송해줍니다.

curl_setopt($fcmVal, CURLOPT_HTTPHEADER, $header);
curl_setopt($fcmVal, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($fcmVal, CURLOPT_POST, 1);
curl_setopt($fcmVal, CURLOPT_POSTFIELDS, $data);
curl_exec($fcmVal);

끝.. 이에요..

제대로 잘 작성되었다면, 웹 브라우저에서 지금 만든 페이지를 호출했을 때, 다음과 같은 내용이 출력됩니다.

results는 각 device마다의 결과를 보여주는 배열입니다. my_ids 배열에 여러개의 값이 들어있었다면, results 배열의 값도 여러개가 출력됩니다.

반응형

'PHP' 카테고리의 다른 글

PHP 날짜(시간)표기, 날짜 계산하기  (0) 2021.02.01
PHP 안드로이드 연동 기초  (0) 2021.01.25