2017-01-16 7 views
1

현재 내 서버 (django, 내장 된 sqlite3 실행)에서 내 안드로이드 장치 (들)에게 통신하고 알림을 보내야하는 프로젝트를 수행 중입니다.Firebase Cloud Messaging 문제

내 인생을 편하게하기 위해 Google의 Firebase 클라우드 메시징에서 활용하여 간격을 메우고 알림을 Android 기기에 쉽게 보냅니다.

Django (내 서버 쪽)에서 FCM 서버에 http 요청을 수행 할 때마다 django-fcm 라이브러리를 사용하여 장치에 알림을 보내야합니다.이 장치는 올바르게 설정되었다고 생각합니다.

내가 직면하는 문제는 장고 측에서 FCM 서버로 성공적인 게시를 했는데도 알림이 FCM 콘솔에 표시되지 않고 필요한 조사를 위해 최선을 다했습니다. 해결책을 찾지 만 아무 소용이 없습니다. 이 라이브러리에서 제공하는 방법을 사용하여

, 내가 메시지를 보내는 시도하고이 주어진 반응이다 : 내가 읽은 문서화에서

Kzhan00b-3:eldersense_website Kzhan00b$ python3 manage.py fcm_messenger --devices 
Devices list: 
(#7) Zhong Han 


Kzhan00b-3:eldersense_website Kzhan00b$ python3 manage.py fcm_messenger --device_id=7 --msg='hello' 
Using default settings.FCM_MAX_RECIPIENTS value 1. Change it via settings [OK] device #7 (Zhong Han):  
(['cbUqW...IimVXB'], 
{'results': [{'message_id': '0:1484576499555513%775b332838eb0007'}], 'multicast_id': 6536553600879447077, 'success': 1, 'failure': 0, 'canonical_ids': 0}) 

내에서 언급 한 오류가 없기 때문에 본문,이 게시물은 성공적인 요청이어야합니다.

그러나 내 콘솔/에뮬레이트 된 Android 장치에서 전송 된 알림을 확인하면 특히 콘솔쪽에 아무 것도 표시되지 않습니다.

r = requests.post('https://fcm.googleapis.com/fcm/send', 

data= json.dumps({'to':'cbUqWQ...rzSUIimVXB'}), 
headers = {'Content-Type': 'application/json',' 
Authorization':'key=AAAA...nrgB8Y'}) 

>>> r.text 
'{"multicast_id":7759794145591317544,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1484575515499197%775b3328f9fd7ecd"}]}' 
>>> r.status_code 
200 

거의 저를주는 다음과 같이

그래서 더 강력한 조사를 수행하기 위해, 나는 FCM 문서에 참조, 파이썬에 Requests 라이브러리를 사용하여 수동 HTTP 포스트를 일을 시도했습니다 위와 같이 django-fcm 라이브러리를 사용하는 것과 같은 응답이지만 안드로이드 나 FCM 서버에서 알림을받지 못합니다.

내가 잘못하고있어 성공적인 HTTP 요청을 일으키고 FCM 서버가 인정하지만 아직 FCM 콘솔에 표시하지 않은 것이 있으면 어떤 조언을 구합니다.

내 장고 서버 또는 Android 측에서 코드를 보여줘야하는지 알려주세요.

감사합니다.

답변

0

당장 django-fcm을 사용하고 있습니다. 정상적으로 작동합니다. Firebase 콘솔의 "알림"섹션에서 서버로부터 전송 된 알림을 볼 수 없습니다. 이 섹션은 알림을 수동으로 보내는 것 같습니다. 내가 올바르게 이해한다면, 수동으로 보내진 메시지에 대해서만 역사를 저장합니다. 적어도 장고 -fcm을 통해 전송 된 메시지는 여기에 표시되지 않습니다. 제 생각에, 당신의 로그 메시지는 괜찮습니다. 클라이언트 코드를 보여줄 수 있습니까? 또한 FCM_MAX_RECIPIENTS = 1을 Django의 settings.py에 추가하는 것이 좋습니다. (하지만 문제의 맥락에서 문제가되지 않는다고 생각합니다.)

관련 문제