我正在尝试做需要同时通知所有用户的加密应用程序。 为单个设备发送通知对我有用。但如何使用 python 发送多个设备通知?
此代码仅向单个设备发送通知
import requests
import json
serverToken = 'token here'
deviceToken = 'token here'
headers = {
'Content-Type': 'application/json',
'Authorization': 'key=' + serverToken,
}
body = {
'notification': {'title': 'Sending push form python script',
'body': 'OMG lets goo1'
},
'to':
deviceToken,
'priority': 'high',
# 'data': dataPayLoad,
}
response = requests.post("https://fcm.googleapis.com/fcm/send",headers = headers, data=json.dumps(body))
print(response.status_code)
print(response.json())
(我只想向所有拥有 flutter 应用程序的用户发送通知)
编辑 我可以列出所有设备令牌,但是,无论如何,是否可以向拥有我的应用程序的人发送通知。(不列出所有设备令牌)
您确实需要提供更多背景信息。 Karl Knechtel 的回答值得考虑。然而,我想说的是,从“非常一般”的角度来看,异步编程似乎可能是一个解决方案。您可以在运行函数时调用异步函数来提醒所有成员。这将允许程序继续正常运行,不会因通知多个用户而减慢速度,同时运行单独的异步函数来通知尽可能多的人。 再次强调:这是一个“非常”通用的解决方案,但很可能不是您遇到的问题,因为您“真的”需要提供示例代码、上下文,并更清楚地了解您需要帮助的内容。
编辑: 为了清晰和具体而添加更多内容。
如果问题是您不能延迟您的计划,因为它会通知大量收件人:
考虑如下结构:
async def alertMembers()
async def program()
您可以
或
await
您的程序来提醒所有成员,而不会中断实际程序的流程。
如果问题是您不知道如何使用任何警报方法向多个成员发出警报:
考虑从 CSV 或 JSON 读取的收件人列表,您的程序在for
循环中迭代以获取所有收件人。像这样:
recipients = pd.read_csv('recipients.csv') # Using Pandas and CSV
with open('recipients.json', 'r') as f: # Using inbuilt JSON parsing
recipientsJSON = json.load(f)
# Sample recipientsJSON dictionary:
recipients = {
"John": ["19280120987"],
"Mary": ["19283192832"]
}
# Executing with a for loop
for recipient in recipientsJSON:
sms.send_message(
"number": recipientsJSON[recipient][0]
"content": 'something' # Your alert
)
这种类型的结构执行起来非常高效,并且可以处理任意数量的收件人。
这些是针对非常模糊和未知问题的一些潜在解决方案,因此请编辑、改写并为您的问题添加上下文,以便能够得到适当的回答。尝试 async-pyfcm (
https://pypi.org/project/async-pyfcm/)