웹 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;
}
댓글목록 0
등록된 댓글이 없습니다.