1. 준비물
1-1. pyfcm 설치
1-2. Server Key
1-3. Token
2. 푸시 알림 보내는 방법
1-1. 1명에게 보내기
1-2. 여러 명에게 보내기
1. 준비물
1-1. pyfcm 설치
커맨드에서 "pip install pyfcm"을 입력해서 라이브러리를 설치해도 되지만
평소에 이 방식대로 하면 오류가 자주 발생해서
번거롭지만 이렇게 설치하는 것을 추천한다.
Pycharm 프로그램 기준으로 위 경로대로 클릭한다.
그다음 이름을 검색하고 설치해주면 끝이다.
1-2. Server Key
파이어 베이스 서버 키를 얻기 위해서 위 경로대로 클릭한다.
만약 아직 파이어베이스 연동을 하지 않았다면
아래 링크를 보고 따라하면 된다.
그러면 위 사진처럼 서버 키라고 적혀있는 부분이 있을 것이다.
영어와 숫자의 조합으로 이루어진 매우 긴 값이고, 이 값은 유출되지 않도록 주의해야 한다!
1-3. Token
안드로이드 소스
override fun onNewToken(token: String?) {
Log.d(TAG, "new Token: $token")
// 토큰 값을 따로 저장해둔다.
val pref = this.getSharedPreferences("token", Context.MODE_PRIVATE)
val editor = pref.edit()
editor.putString("token", token).apply()
editor.commit()
Log.i("로그: ", "성공적으로 토큰을 저장함")
}
토큰은 안드로이드 스튜디오에서 onNewToken 메서드를 통해서 얻을 수 있다.
토큰에 대한 설명과 보다 더 자세한 설명은 1-2에서 링크한 게시물에 있다.
2. 푸시 알림 보내는 방법
1-1. 1명에게 보내기
파이썬 소스
from pyfcm import FCMNotification
APIKEY = "Your Server Key"
TOKEN = "Your Token"
# 파이어베이스 콘솔에서 얻어 온 서버 키를 넣어 줌
push_service = FCMNotification(APIKEY)
def sendMessage(body, title):
# 메시지 (data 타입)
data_message = {
"body": body,
"title": title
}
# 토큰값을 이용해 1명에게 푸시알림을 전송함
result = push_service.single_device_data_message(registration_id=TOKEN, data_message=data_message)
# 전송 결과 출력
print(result)
sendMessage("배달의 민족", "치킨 8000원 쿠폰 도착!")
코드는 정말 간단하다.
data 타입의 메시지에 내용을 넣고
single_device_data_message 메서드에 토큰과 메시지를 넣어주면 된다.
이 메서드는 실행 결과를 리턴하는데, 그걸 result에 담아서 출력해 준 것이다.
이렇게 푸시 알림이 왔다면 성공이다.
1-2. 여러 명에게 보내기
파이썬 소스
from pyfcm import FCMNotification
APIKEY = "Your Server Key"
# 파이어베이스 콘솔에서 얻어 온 서버 키를 넣어 줌
push_service = FCMNotification(APIKEY)
def sendMessage(body, title):
# 메시지 (data 타입)
data_message = {
"body": body,
"title": title
}
# topic을 이용해 다수의 구독자에게 푸시알림을 전송함
# 버전에 따라 사용 방법이 다를 수 있으니 공식문서 확인 필수
result = push_service.notify_topic_subscribers(topic_name="chicken", data_message=data_message)
# 전송 결과 출력
print(result)
sendMessage("배달의 민족", "치킨 8000원 쿠폰 도착!")
이 방법은 토큰 값이 필요 없다.
마치 내 유튜브 채널을 구독한 사람들한테 알림을 보내듯이
어떤 주제를 구독한 사람들에게 알림을 보내는 방식이기 때문이다.
위 예시에서는 'chicken' 이란 키워드를 등록한 사람들에게 알림을 보내는 예시이다.
1명에게 보내는 예시와 다른 것은 notify_topic_subscribers 메서드를 사용했다는 점뿐이다.
2022-07-02)
버전에 따라 FCM 전송 방법이 조금씩 다를 수 있습니다.
공식문서를 참고해주세요.
제보해주신 JJa08111님 감사합니다 😄
단, 이 메서드는 한글을 주제로 구독을 할 수 없는데
만약 꼭 한글을 사용해야겠다 하면 아래 링크를 참고하면 된다.
파이썬에서 푸시알림을 보내주었다면
이제 안드로이드에서 그걸 받아 처리할 차례이다.
아래 게시물에 자세히 적어두었다.
Android 10
Python Version : 3.8
Pycharm Version : 2020.2.2 (Community Edition)
'앱 제작 > 키워드 알림 앱' 카테고리의 다른 글
SwipeRefreshLayout :: 당겨서 새로고침 하기 (0) | 2021.01.09 |
---|---|
[코틀린] infinite/endless scroll(무한 스크롤)과 recyclerView (14) | 2021.01.08 |
Firebase 데이터베이스 딜레이 문제 해결(= 반환 값이 null일 때) (24) | 2021.01.03 |
subscribeToTopic 한글을 주제로 구독하기 :: 푸시알림 구독 서비스 구현 (12) | 2021.01.02 |
[Kotlin] FCM 푸시 알림 구현하기 (15) | 2020.12.31 |
댓글