我正在使用django-push-notifications在Django使用Firebase Cloud Messaging,通过桌面通知向我们的用户发送推送通知。
浏览器完全关闭后(例如计算机关闭时),我们的用户会收到一份积压的所有通知,这些通知都是他们下次启动时发送的。
虽然在某些情况下,用户可能希望接收全部积压的消息,但这不是其中之一。
似乎答案是按照this section of the FCM documentation设置TTL=0,但我的尝试没有得到所需的行为。
在这种情况下,请帮助我更好地理解TTL。如果TTL是正确的方法,那么使用django-push-notifications在send_message()中格式化TTL的正确方式是什么,这样如果不能立即发送,消息就不会累积?
这是我尝试过的:
devices.send_message(
body,
TTL=0,
time_to_live=0,
link='blah',
extra={'title': 'blah blah', 'icon': '/foo/bar.png'}
)发布于 2019-10-03 13:29:56
您发送的格式似乎与您链接的文档中的格式不同。从文档中:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
"apns":{
"headers":{
"apns-expiration":"1604750400"
}
},
"android":{
"ttl":"4500s"
},
"webpush":{
"headers":{
"TTL":"4500"
}
}
}
}所以这里的关键是webpush消息的生存时间是在webpush/headers/TTL下设置的,而您正在将它添加到顶层。
https://stackoverflow.com/questions/58212687
复制相似问题