2017-01-16 19 views
1

現在、私のサーバー(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側のコードを表示する必要がある場合はお知らせください。

ありがとうございます!

答えて

0

私は現時点でdjango-fcmを使用していますが、正常に動作します。 Firebaseコンソールの「通知」セクションでサーバから送信された通知は表示されません。このセクションは、通知を手動で送信するためのものです。私が正しく理解していれば、手動で送信されたメッセージに関する履歴のみが保存されます。少なくとも、django-fcmで送信されるメッセージはここには表示されません。私は、あなたのログメッセージは大丈夫だと思います。クライアントコードを表示できますか?さらに、FCM_MAX_RECIPIENTS = 1をDjangoのsettings.pyに追加する方が良いでしょう。 (しかし問題の文脈では問題ではないと私は思う)

関連する問題