https://calyfactory.github.io/fcm-%EB%B3%B4%EB%82%B4%EA%B8%B0/
대부분에 서비스가 서버에서 유저에게 능동적인 요청을 보내기위해서 push Notification을 사용한다.
캘리도 마찬가지 이유로 동기화가 완료된 경우나, 혹은 공지사항, 추천 알림등 다양한 경우에 push notification을 보낼 수 있어야한다.
파이썬 fcm 패키지중 하나인 pyfcm을 사용한다.
pip3 install pyfcm
설치가 끝났다. 쉽다.
fcm을 보내기위해선 api key가 필요하다.
이는 fcm 콘솔에서 받아 볼수있다.
해당 키를 이용해 특정 어플리케이션에 인증된 서버라는 것을 확인한다.
from pyfcm import FCMNotification
push_service = FCMNotification(api_key=conf["fcm"]["key"])
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)
유저에게 알림은 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)
푸시 노티피케이션은 이제 앱개발에서 필수인 부분이 되었다.
그만큼 점점 구현이 간결해지고 있는 느낌이든다.
나중에 애플 푸시와 비교해보겠다.
끝.