상세 컨텐츠

본문 제목

FCM을 활용한 안드로이드 푸시 push 발송 서버 구현하기

IT컴퓨터

by 자기 2022. 1. 30. 23:43

본문

728x90

일전에 웹프로그래밍 언어 중 하나인 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;

  }

?>

여기까지~!

아무쪼록 열심히 삽질하시는 많은 초보개발자분들에게 조금이나마 도움이 되셨으면 하는 마음입니다.

화이팅하세요~!

728x90

관련글 더보기

댓글 영역