파이썬에서 FCM을 보내보자.
왜
대부분에 서비스가 서버에서 유저에게 능동적인 요청을 보내기위해서 push Notification을 사용한다.
캘리도 마찬가지 이유로 동기화가 완료된 경우나, 혹은 공지사항, 추천 알림등 다양한 경우에 push notification을 보낼 수 있어야한다.
fcm 설치하기
파이썬 fcm 패키지중 하나인 pyfcm을 사용한다.
pip3 install pyfcm
설치가 끝났다. 쉽다.
fcm 유저 알림 보내기
fcm을 보내기위해선 api key가 필요하다.
이는 fcm 콘솔에서 받아 볼수있다.
해당 키를 이용해 특정 어플리케이션에 인증된 서버라는 것을 확인한다.
- apikey를 설정해준다
from pyfcm import FCMNotification
push_service = FCMNotification(api_key=conf["fcm"]["key"])
- pushToken을 받는다.
- 모바일에서 발급받은 pushToken을 서버에서 가지고 있어야한다.(해당 디바이스로 보낼..)
- 옵션을 정한다.
- 싱글유저에게 보낼지.
- 멀티 유저에게 보낼지.
- title/body를 채운다.
- title은 푸시 요청왔을경우 제목 부분을 말하고
- body는 콘텐츠 영역을 말한다.
result = push_service.notify_multiple_devices(registration_ids=push_tokens, message_title=message_title, message_body=message_body)
result = push_service.notify_single_device(registration_id=push_tokens, message_title=message_title, message_body=message_body)
- 위와같이 보내고 나면 result에 해당 푸시토큰으로 잘 보내졌는지 확인되어진 json 을 받아 볼 수 있다.
데이터 알림 보내기
유저에게 알림은 title과 body를 통해 유저에게 특정 상황을 알리는데에 그 목적이 있다.
하지만 데이터 알림은 서버에서 클라이언트에게 특정 데이터및 상황을 알려주고 싶은 경우에 사용된다.
예를들어 유저가 푸시를 통해 앱에 들어왔을경우 앱이 특정 화면(이벤트화면)으로 이동됬으면 좋겠다. 라는 명세가 있을떄
title/body 영역에 유저에게 앱에 들어오게끔 문구를 만들 어보내고,
data영역에 activity: event 와같은 데이터를 만들어보내 클라이언트에서 받아 처리하게 된다.
이것 추가 역시 매우 간단하다
마지막 파라미터에 data_message=data
를 추가하면된다.
result = push_service.notify_single_device(registration_id=push_tokens, message_title=message_title, message_body=message_body,data_message=data)
마치며
푸시 노티피케이션은 이제 앱개발에서 필수인 부분이 되었다.
그만큼 점점 구현이 간결해지고 있는 느낌이든다.
나중에 애플 푸시와 비교해보겠다.
끝.
Comments