본문 바로가기
Flutter 개발일지

Flutter) Firebase 푸시 알람 설정해보기 _2 >php<

by 우딬 2022. 11. 18.

이전 블로그

https://suji-choi.tistory.com/80

 

Flutter) Firebase 푸시 알람 설정해보기 _1

1. Firebase에 어플 등록하기 - 공식 문서가 너무 잘 되어 있기 때문에 스킵합니다. 2. 테스트 보내기 공식문서 따라서 잘 가보면 어플에 2개의 파일이 생성되어 있습니다. 그런데 초기화를 해야 한

suji-choi.tistory.com

 

 

1. OAuth 2.0 발급하기

 

이전에는 서버키로 간단하게 할 수 있었는데.. 이제 아예 지원을 끊어버렸네..

그래서 OAuth2.0키를 발급 받아야한다.

JSON파일로 다양한 정보가 들어있는데 잽사게 발급받으로 가보자

 

https://console.firebase.google.com/

1. 파이어 베이스 프로젝트 설정으로 간다.

 

클라우드 메세징 메뉴로 들어가서 서비스 계정 관리 클릭

 

저는 이미 서비스를 만들었지만 만들지 않으면 서비스 사용하시겠냐는 창이 뜹니다!허용을 눌려서 서비스 시작하기!

 

2. 서비스 계정 만들기

따로 뭐 적는건 없고 어플의 기본적인 정보를 제공해야합니다.

계정을 하나 만들면

 

요렇게 계정이 하나 생성되고 이 이메일 항목클릭 

키 추가 눌려주기!

 

그럼 밑에 하나 뜨고 그 json을 꼭꼭 저장해두세요~

그 json을 나중에 불러와서 사용할겁니다.

 

3. PHP로 메세지 보내보기

다른 방법도 문서보면 있긴한대 현재 PHP서버밖에 쓸만한게 없어 PHP로 해봅니다.

 

PHP 버전

- 필수

5.6.0 이상

- 권장

composer로 설치

>> 하지만 composer는 PHP에 설정을 바꿔야 하기 때문에 

직접 설치도 가능합니다.

 

 

PHP로 OAuth2.0키를 읽어 오기 위해선 아래 깃에서 다운로드 받아야합니다.

 

구글 공식 홈페이지

https://github.com/googleapis/google-api-php-client

 

GitHub - googleapis/google-api-php-client: A PHP client library for accessing Google APIs

A PHP client library for accessing Google APIs. Contribute to googleapis/google-api-php-client development by creating an account on GitHub.

github.com

 

저는 카페24 서버를 쓰는데 composer를 설치하기 위해서 설정을 바꿔야되는데

그게 안된단다;; 그것때문에 멘붕이 왔는데 밑에 직접설치하는 링크가 있었는데;;
그걸 못보고 3시간을.. 아무튼

 

릴리즈 버전 다운로드

https://github.com/googleapis/google-api-php-client/releases

 

Releases · googleapis/google-api-php-client

A PHP client library for accessing Google APIs. Contribute to googleapis/google-api-php-client development by creating an account on GitHub.

github.com

 

여기서 해당하는 PHP ZIP파일을 다운로드하고 서버에 압축 풀어준다.

 

php파일에 본인의 정보를 입력하고 실행합니다.

 

<?php

$json = '{
	"message":{
	"notification":{"title": "타이틀","body": "바디"},
    "token":"기기토큰입력"
	}
}';
require "google/vendor/autoload.php";
$client= new Google_Client();
$client->setAuthConfig("파일위치 / JSON파일명.json");
$client->addScope('https://www.googleapis.com/auth/firebase.messaging');
$client->refreshTokenWithAssertion();
$token = $client->getAccessToken();

// curl 초기화
$ch2 = curl_init();

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

curl_setopt_array($ch2, array(
    CURLOPT_URL => 'https://fcm.googleapis.com/v1/projects/프로젝트명/messages:send',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => $json
));

// push 전송
$response = curl_exec($ch2);
curl_close($ch2);

$inputreq = json_decode($response, TRUE);
print_r($inputreq);

?>

 

푸시 알람 종결

댓글