티스토리 뷰
반응형
필수 코드
console: pip install requests
import requests
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import requests import json @csrf_exempt def push_to_client(lms_id, list_diff_subjects, list_diff_reports): url = 'https://fcm.googleapis.com/fcm/send' headers = { 'Authorization': 'key=longlongKey', 'Content-Type': 'application/json; UTF-8', } # 한명 지정이면 to, 여럿일 경우 registration_ids[] content ={'to': token, 'notification': { 'title': 'title', 'body': 'body'}} push_req = requests.post(url, data=json.dumps(content), headers=headers) | cs |
내가 사용하는 코드(title은 과목명, body는 과제명)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import requests import json @csrf_exempt def push_to_client(lms_id, list_diff_subjects, list_diff_reports): userdata = UserData.objects.get(lms_id = lms_id) token = userdata.device_token # print('TOKEN ', token) # fcm 푸시 메세지 요청 주소 url = 'https://fcm.googleapis.com/fcm/send' # 인증 정보(서버 키)를 헤더에 담아 전달 headers = { 'Authorization': 'key=longlongkey', 'Content-Type': 'application/json; UTF-8', } # 한명 지정이면 to, 여럿일 경우 registration_ids[] # json 파싱 후 requests 모듈로 FCM 서버에 요청 if len(list_diff_subjects) > 0: for i in range(int(len(list_diff_subjects) / 2)): content ={'to': token, 'notification': { 'title': list_diff_subjects[i], 'body': list_diff_subjects[i+1]}} push_req = requests.post(url, data=json.dumps(content), headers=headers) if len(list_diff_reports) > 0: for i in range(int(len(list_diff_reports) / 2)): content ={'to': token, 'notification': { 'title': list_diff_reports[i], 'body': list_diff_reports[i+1]}} push_req = requests.post(url, data=json.dumps(content), headers=headers) return HttpResponse("<h1>SENDED</h1>") | cs |
한명에게 보내면 to
여러명이면 array type registration_ids[]
topic으로 보낼수도 있음
Authorization key는 파이어베이스 콘솔 -> 왼쪽 Project Overview 설정 -> CloudMessaging탭에 서버키 있음
서버에서 notification으로 보내도 onMessageReceived에 들어가질 않아서 스트레스였는데
data로 보내주니까 잘 된다
댓글
티스토리 방명록
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
Blog is powered by
Tistory / Designed by
Tistory
Contact: j0n9m1n1@gmail.com
Contact: j0n9m1n1@gmail.com