PHP FCM 연동해서 푸시 발송 > 개발팁

본문 바로가기
사이트 내 전체검색

개발팁

PHP FCM 연동해서 푸시 발송

페이지 정보

본문

PHP 에서 사용자 데이터베이스에서 푸시 설정 여부가 

설정되어 있는 사용자의 토큰을 가져와서 푸시를 보내야할 경우가 있다.


그럴 경우 데이터베이스에서 푸시 수신여부에 1(True)로 되어 있는 사용자를 Select 해서

토큰을 가져온 다음에 토큰 배열에 넣고 푸시 발송하면 된다.


// 함수 사용방법

function send_notification ($message)

{

$DB_IP ="데이터베이스 아이피";

$DB_ID ="데이터베이스 아이디";

$DB_PW ="데이터베이스 패스워드";

$DB_NAME ="데이터베이스명";

$DB_CONN = array("UID"=>$DB_ID, "PWD"=>$DB_PW, "Database"=>$DB_NAME,'ReturnDatesAsStrings'=>true);


$conn = sqlsrv_connect($DB_IP, $DB_CONN);

$url = 'https://fcm.googleapis.com/fcm/send';


$google_api_key = "파이어베이스->콘솔->프로젝트설정->Setting->클라우드메시징->서버키";

$tokens = array();

$query = "토큰 발송 대상자 토큰 리스트 추출 쿼리";

$result = sqlsrv_query($conn, $query);


while($row = sqlsrv_fetch_array($result)){

array_push($tokens, $row["Token"]);

}


sqlsrv_free_stmt($result);

sqlsrv_close($conn);

$fields = array(

'registration_ids' => $tokens,

'notification' => array('title'=>"푸시제목", 'body'=>$message),

);


$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_CUSTOMREQUEST,"POST");

       curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

       $result = curl_exec($ch);           

       if ($result === FALSE) {

           die('Curl failed: ' . curl_error($ch));

       }

       curl_close($ch);

   //echo result;

       return $result;

}

추천1 비추천0

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

공지사항

  • 게시물이 없습니다.

접속자집계

오늘
1,109
어제
1,992
최대
3,520
전체
378,963
Copyright © 소유하신 도메인. All rights reserved.