現在、私のサーバー(django、組み込みのsqlite3を実行中)から、私のAndroidデバイスに通知して、通信する必要があるプロジェクトを行っています。Firebase Cloud Messagingの問題
私の人生を楽にするために、私はGoogleのFirebaseクラウドメッセージングを利用してギャップを埋め、アンドロイドデバイスに簡単に通知を送信します。
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})
私が読んだドキュメンテーションからは、内に述べたエラーがないので、体、この投稿は成功した要求でなければなりません。
しかし、コンソール/エミュレートされたアンドロイドデバイスでこれを介して送信された通知をチェックすると、特にコンソール側に何も表示されません。
だから、より堅牢な調査を行うために、私は次のようにFCMのドキュメントに参照する、のpythonにRequestsライブラリを使用して手動でHTTPポストをやってみました:
ほとんど私を与え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ライブラリを使用した場合と同じ応答ですが、アンドロイドまたはFCMサーバの両方で通知を受け取ることはありません。
私が間違ってやっていることがあり、成功したHTTP要求が行われ、FCMサーバによって確認され、FCMコンソールに表示されていないことがあれば、アドバイスを求めます。
私のDjangoサーバーまたはAndroid側のコードを表示する必要がある場合はお知らせください。
ありがとうございます!