2017-01-16 89 views
1

当前正在做一个项目,需要我通过我的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端代码!

谢谢!

回答

0

我使用Django的FCM的那一刻,它工作正常。在Firebase控制台的“通知”部分中,我看不到来自服务器的任何通知。看起来,这部分是手动发送通知。如果我理解正确的话,它存储的历史只有约的消息,那么通过它人工发送。至少,我在这里看不到通过django-fcm发送的消息。我想,你的日志消息是可以的。你能显示客户端代码吗?此外,最好是1加FCM_MAX_RECIPIENTS =你的Django的settings.py。 (但它不会在该问题的情况下无所谓,我觉得)

相关问题