首页 文章

Firebase Cloud 消息传递问题

提问于
浏览
1

目前正在做一个项目,要求我从我的服务器(django,运行内置的sqlite3)与我的Android设备进行通信和发送通知 .

为了让我的生活更轻松,我将利用Google的Firebase Cloud 消息传递来弥补差距并轻松地将通知发送到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设备上检查通过此发送的任何通知时,没有显示任何内容,尤其是在控制台端 .

因此,为了进行更强大的调查,我尝试使用python上的Requests库进行手动HTTP Post,参考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 Server或Android端向您显示代码,请告诉我!

谢谢!

1 回答

  • 0

    我现在正在使用django-fcm而且工作正常 . 我没有在Firebase控制台的“通知”部分中看到从服务器发送的任何通知 . 看来,这部分是手动发送通知 . 如果我理解正确,它只会记录通过它手动发送的消息的历史记录 . 至少,我没有看到通过django-fcm发送的消息 . 我想,你的日志消息还可以 . 你能展示客户代码吗?此外,最好将FCM_MAX_RECIPIENTS = 1添加到Django的settings.py中 . (但我认为在问题的背景下并不重要)

相关问题