HOME
회사소개
포트폴리오
커뮤니티
고객평가
갤러리
무료봉사
온라인마케팅
최근 신기술
제작/컨설팅
솔루션

PHP(웹호스팅 및 가상서버)에서 fcm(firebase cloud message) v1 사용방법 및 셋팅 방법 > 자료실

본문 바로가기

홈페이지

어플

프로그램

오늘 방문자

제작상담

■ 어떠한 것이든 설명이 가능하시면 제작이 가능합니다.
■ 저희는 거의 임진왜란 직후부터 개발해온 회사입니다.
■ 저희가 개발한 플랫폼 = 평생 무료 하자보수.
■ 요청고객께 6개월마다 홍보용 홈페이지를 무료제작
AI 인공지능,AR,VR 개발 가능합니다.
유지보수를 원하시는 모든형태로 가능합니다.
■ 고객의 아이디어가 저희 포트폴리오에 있을 확률 80%

고객평가

  • 니즈가 명확하지 않아 ...
  • 기획 단계부터 먼저 여...
  • 저희 앱이 일본어 사전...
  • 과격한 표현으로 말하자...
  • 앱 쪽에 정보가 많이 ...
  • 디몬스터를 처음 만났을...
  • 처음했던 외주 개발인데...

궁금해요

  • AI 전반정리

    AI 전반정리

  • 단말기, 이용료, 유지비 없는 POS…

    단말기, 이용료, 유지비 없는 POS…

  • POS 연동에 대한 오해와 진실

    POS 연동에 대한 오해와 진실

고객리뷰

  • (주)**경매  정**대표님

    (주)**경매 정**대표님

  • (주)타이어핏 홍** 대표님

    (주)타이어핏 홍** 대표님

  • (주)아토비엔 임** 대표님

    (주)아토비엔 임** 대표님

숏츠/릴스

  • 인공지능 카메라 하나로 모든 문제를 …

    인공지능 카메라 하나로 모든 문제를 …

  • 효율적인 공간 관리를 위한 매핑 기능

    효율적인 공간 관리를 위한 매핑 기능

자료실

웹 | PHP(웹호스팅 및 가상서버)에서 fcm(firebase cloud message) v1 사용방법 및 셋팅 방법

페이지 정보

작성자 오규진 조회165,350회 댓글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에서 제공하는 인증방식)

발송형태 : 동일한 코드로 날리며 요청시 플랫폼 별로 맞춤형 코드 삽입 가능함

*** 필수 참조 : https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages?authuser=1&hl=ko#AndroidNotification

 

===========================================================================================================================

 

1. V1버전으로 올라가면서 해당 Firebase 프로젝트 ID가 사용되게 됩니다.

https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb6c087bf-92cd-4a6f-9b94-ff6bab012763%2FUntitled.png?id=1e1c4826-35dd-4c24-bc68-a79a47573f5e&table=block&spaceId=b95e56f1-1264-4022-ae1b-26c36f46483e&width=1000&userId=faa78df0-8266-4510-81b1-aa8e4471664a&cache=v2

 - 각자 생성한 프로젝트의 설정에 들어가서 프로젝트 ID를 확인해주세요.

 

2. v1 사용을 위한 프로젝트 CREDENTIALS용 json 파일 받기

https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb7b62fc9-49c6-4cd8-93a0-b419fb3a0e83%2FUntitled.png?id=b773cba8-85ed-41fc-b4cd-5c2d49a053e8&table=block&spaceId=b95e56f1-1264-4022-ae1b-26c36f46483e&width=1000&userId=faa78df0-8266-4510-81b1-aa8e4471664a&cache=v2

 - 비공개 키 생성시 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폴더를 사용하시는 웹호스팅의 젤 상단에 붙여넣어주세요.​

https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fe8105128-1e17-42ec-a78b-013356e432ca%2FUntitled.png?table=block&spaceId=b95e56f1-1264-4022-ae1b-26c36f46483e&id=551d3aff-6901-4cef-b68b-11e710548889&width=620&userId=faa78df0-8266-4510-81b1-aa8e4471664a&cache=v2

 

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
require_once ($_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php');
$url = 'https://fcm.googleapis.com/v1/projects/프로젝트ID/messages:send';

putenv('GOOGLE_APPLICATION_CREDENTIALS=./프로젝트명_fcm_key.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes($scope);
$auth_key = $client->fetchAccessTokenWithAssertion();

$ch = curl_init();
//header 설정 후 삽입

$headers = array(
    'Authorization: Bearer ' . $auth_key['access_token'],
    'Content-Type: application/json'
);

curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 

$title = "푸시테스트 제목";
$content= "푸시테스트 내용입니다.";

$notification_opt = array (
    'title' => $title,
    'body' => $content,
);

$data_array = array (
    'test_data1' => '테스트 데이터1',
    'test_data2' => '테스트 데이터2',
    'test_data3' => '테스트 데이터3',
);

$android_opt = array (
    'notification' => array(
        'default_sound' => true,
   'channel_id' => '프로젝트명',
    ),
'priority' => 'high',
    'data' => $data_array,
);

$message = array(
    'token' => '앱에서 발행한 푸시 토큰 값',
    'notification' => $notification_opt,
    'android' => $android_opt,
            'data' => $data_array,
);

$last_msg = array (
    "message" => $message
);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($last_msg)); 
$result = curl_exec($ch);
if($result === FALSE){
    printf("cUrl error (#%d): %s<br>\n",
    curl_errno($ch),
    htmlspecialchars(curl_error($ch)));
}
echo $result;
?>​

======================================================================================================​

 

위 내용을 확인하셔서 오류없이 fcm v1연동을 완료하시길 빌겠습니다.

좀 더 보기 좋게 정리한 노션링크도 같이 추가해두니 많이 확인 부탁드립니다.

 

https://spectacled-slayer-b62.notion.site/PHP-fcm-v1-1076d53de6a3498aa2efd72b9855dac9?pvs=4

 

 

 

 


| 디몬스터 | TEL : 070-7621-0572 / 070-5022-0572 | HP : 010-7574-0572 | E-mail : jackee@naver.com
| 메타몬스터 - 서울 구로구 구로동 235-3 대륭포스트타워 8차 L동 805, 806호 | 부천시 길주로 272 2001호(중동 코스모폴리탄) | 부산시 금정구 금정로 225 4층,5층 | 몽골사무실- Ulaannaatar.mongola bayangol district 3-khoroo agro center 9-02
당사의 어플방식은 저작권 및 특허출원중입니다. 복제,모방,변용 및 유사 상행위 적발시,경고,통보없이 민형사상 책임을 진행합니다
Copyright © www.dmonster.co.kr All rights reserved.Since 2008 (주)세미콜론즈 · 사업자번호: 801-88-00338