Jiwift

[Python] FCM Topic(주제)을 이용한 Push Notification 메세지 전송 본문

다른 개발/Python

[Python] FCM Topic(주제)을 이용한 Push Notification 메세지 전송

지위프트 2023. 6. 11. 23:05
반응형

[Python] FCM Topic(주제)을 이용한 Push Notification 메세지 전송

 

 

Push Notification을 받을 수 있는 웹, 앱 환경이 필요합니다.

 

순서

1. 비공개 키 생성

2. 라이브러리 설치

3. 코드 작성

4. 실행

 

파이어베이스 프로젝트 설정에 들어갑니다. 

 

[서비스 계정 -> Python -> 새 비공개 키 생성]을 순서대로 눌러줍니다. 그럼 json 파일을 하나 다운을 받을겁니다.

 

Python 파일과 비공개 키 json 파일을 원하는 위치에 준비시킵니다. 

 

 

pip install firebase_admin

python 필요 라이브러리를 설치해줍니다. 

 

import firebase_admin
from firebase_admin import credentials
from firebase_admin import messaging

# Firebase Admin SDK를 초기화합니다.
cred = credentials.Certificate('fcmtopic-4de00-firebase-adminsdk-bvhdw-44f215875f.json')
firebase_admin.initialize_app(cred)

# The topic name can be optionally prefixed with "/topics/".
topic = 'kimjitae'

# See documentation on defining a message payload.
message = messaging.Message(
    notification=messaging.Notification(
        title='이것이 Topic',
        body='이것이 토픽 내용이구나~'
    ),
    data={
        'subtitle': '부제목',
        'screen': '4',
    },
    topic=topic,
)

# Send a message to the devices subscribed to the provided topic.
response = messaging.send(message)
# Response is a message ID string.
print('Successfully sent message:', response)

메세지 내용을 작성하는 방법은 검색해서 다양하게 연습해보세요.

 

위 코드에서 

 

# cred = credentials.Certificate('비공개키 파일 경로')
cred = credentials.Certificate('fcmtopic-4de00-firebase-adminsdk-bvhdw-4875f.json')

이 부분은 파이어베이스 콘솔에서 받은 비공개키 파일을 입력해줍니다. 코드와 비공개키 경로를 다르게 두었다면, 경로까지 다 입력합니다.



# topic = '토픽 이름'
topic = 'kimjitae'

이 부분은 FCM Topic을 입력합니다.

 

유저별 FCM 토큰을 사용하는 상황이 아닌 주제별로 전체 발송을 한다면 편리한 기능입니다. 

 

만약 청소년들에게만 메세지를 전송하는 경우 유저 DB에서 청소년들을 찾고 토큰을 Select하는 것 보다 그냥 청소년 Topic을 구독한 사용자들에게만 메세지를 전송한다면 한줄이면 끝입니다.

반응형