當前正在做一個項目,需要我通過我的android設備進行通信並向我的android設備發送通知,從我的服務器(django,運行內置的sqlite3)。Firebase Cloud Messaging問題
爲了讓我的生活更輕鬆,我將利用Google的Firebase雲消息傳遞彌合差距,並輕鬆地將通知發送到Android設備。
在Django(我的服務器端),我使用django-fcm庫來向FCM服務器發送http請求,每當我需要向我的設備發送通知時,我相信這些通知都已正確設置。
我目前面臨的問題是,即使我已經完成了從Django端到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設備的任何通知發送通過此,沒有顯示,尤其是在控制檯端。
所以爲了做一個更強大的調查,我已經嘗試過使用上蟒Requests庫做手工HTTP後,引用文檔FCM上進行如下:
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
這幾乎給了我與使用上述django-fcm庫相同的響應,但是,在android或FCM服務器上再次沒有收到通知。
所以我想尋求任何意見,如果有,我正在做不正確,導致正在做一個成功的HTTP請求的任何東西,並通過FCM服務器應答,但不顯示FCM控制檯上。
做讓我知道如果你需要我給你看無論從我的Django的服務器或Android端代碼!
謝謝!