웹 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;
}
- 이전글[그누보드]로 만든 게시판의 댓글에 미리 작성된 문구를 표시하는 방법 (placeholder 변경) 19.07.07
- 다음글파일럿 프로젝트의 웹개발시 SSL 인증서(https) 테스트가 필요할 경우 30일 무료 인증서로 테스트 19.06.21
댓글목록
등록된 댓글이 없습니다.