웹 | PHP(웹호스팅 및 가상서버)에서 fcm(firebase cloud message) v1 사용방법 및 셋팅 방법
페이지 정보
작성자 오규진 조회162,813회 댓글0건본문
기존 사용 방법(레거시형)
HTTP : https://fcm.googleapis.com/fcm/send
서버키 문자열 : Authorization: key=AIzaSyZ-1u...0GBYzPu7Udno5aA
발송형태 : 플랫폼별(android, ios, web)로 별도 분리해서 처리 필요
변경된 사용방법 - V1 (참고 : 웹호스팅은 따로 처리가 필요)
HTTP : https://fcm.googleapis.com/v1/projects/프로젝트명/messages:send
서버키 문자열 : Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
(google cloud api에서 제공하는 인증방식)
발송형태 : 동일한 코드로 날리며 요청시 플랫폼 별로 맞춤형 코드 삽입 가능함
===========================================================================================================================
1. V1버전으로 올라가면서 해당 Firebase 프로젝트 ID가 사용되게 됩니다.
- 각자 생성한 프로젝트의 설정에 들어가서 프로젝트 ID를 확인해주세요.
2. v1 사용을 위한 프로젝트 CREDENTIALS용 json 파일 받기
- 비공개 키 생성시 json파일이 생성되며 자동으로 다운로드 받아집니다.
*** 위 json파일은 꼭 잘 저장해두세요. 잃어버리시면 새로 발급을 하셔야 합니다.
- 파일명은 편하신 이름으로 변경하여 사용하셔도 됩니다.
ex) 프로젝트명_fcm_key.php
(가상서버 사용시)
3. 서버에 구글 OAuth 2.0인증을 위한 라이브러리를 설치해주세요.
- php폴더로 이동한다음 composer를 설치해줍니다. 이미 설치되어있다면 다음으로 넘어가세요
curl -sS https://getcomposer.org/installer | php
- composer가 설치되었다면 아래 두가지 모두 설치해주세요.
1) php composer.phar require google/auth
2) php composer.phar require google/apiclient:^2.12.1
(웹호스팅 사용시)
3. 웹호스팅에서는 composer를 사용할 수 없기 때문에 vendor폴더를 따로 업로드 해야됩니다.
(https://drive.google.com/file/d/1hotFtRGA3ai_2XFZGpqxejODUwvBra0s/view?usp=sharing)
- 위 링크는 제가 composer로 받은 파일을 압축하여 구글드라이브에 공유를 해두었습니다. 위 파일을 다운로드 하여 알집을 풀어주세요.
압축을 풀고 나면 vendor라는 폴더가 나옵니다. 해당 vendor폴더를 사용하시는 웹호스팅의 젤 상단에 붙여넣어주세요.
4. 이제 소스를 만드는 작업을 진행합니다.
- 중요한것은 위에서 받았던 json파일을 불러와서 AOuth 2.0인증 토큰을 발급하는것입니다.
======================================== php 소스 참고 ================================================
<?php
//발송 url 작성
require_once ($_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php');
$url = 'https://fcm.googleapis.com/v1/projects/프로젝트ID/messages:send';
//json파일 불러오기
putenv('GOOGLE_APPLICATION_CREDENTIALS=./프로젝트명_fcm_key.json');
//구글 AOuth 2.0인증 토큰 생성
$scope = 'https://www.googleapis.com/auth/firebase.messaging';
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes($scope);
$auth_key = $client->fetchAccessTokenWithAssertion();
echo $auth_key;
?>
======================================================================================================
- $auth_key에서 오류없이 데이터가 출력되는지 확인합니다.
- $auth_key의 데이터중에서 저희가 사용할 데이터는 'access_token'입니다.
5. 기본적인 fcm v1 발송 소스
- access_token이 잘 발급되었다면 아래 소스를 사용하여 테스트를 해보시면 됩니다.
아래 소스를 참고하여 자신만의 소스로 변경하여 사용하시면 됩니다.
======================================== php 소스 참고 ================================================
<?php======================================================================================================
위 내용을 확인하셔서 오류없이 fcm v1연동을 완료하시길 빌겠습니다.
좀 더 보기 좋게 정리한 노션링크도 같이 추가해두니 많이 확인 부탁드립니다.
https://spectacled-slayer-b62.notion.site/PHP-fcm-v1-1076d53de6a3498aa2efd72b9855dac9?pvs=4