Firebase 消息传递设备组
Firebase Messaging Device Groups
FCM 文档说应该使用设备组发送到用户的所有设备。不过,它的 API 仍然是遗留问题 API,我无法让它工作。
我正在使用如下代码,其中 project_id
是发件人 ID,api_key
是来自 firebase 控制台的 Web API 密钥:
In [9]: headers = {
...: 'Accept': 'application/json',
...: 'Authorization': f'key={api_key}',
...: 'project_id': str(project_id),
...: 'Content-Type': 'application/json',
...: }
In [10]: response = requests.get('https://fcm.googleapis.com/fcm/notification?notification_key_name=foo-foo', headers=headers)
In [11]: response.status
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-f75033194368> in <module>
----> 1 response.status
AttributeError: 'Response' object has no attribute 'status'
In [12]: response.content
Out[12]: b'<HTML>\n<HEAD>\n<TITLE>Internal Server Error</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>Internal Server Error</H1>\n<H2>Error 500</H2>\n</BODY>\n</HTML>\n'
In [13]: response.reason
Out[13]: 'Internal Server Error'
In [14]:
好的,“密钥”是云消息选项卡中的“服务器密钥”,“project_id”是相同的“发件人 ID”。
这似乎已经帮我解决了。
FCM 文档说应该使用设备组发送到用户的所有设备。不过,它的 API 仍然是遗留问题 API,我无法让它工作。
我正在使用如下代码,其中 project_id
是发件人 ID,api_key
是来自 firebase 控制台的 Web API 密钥:
In [9]: headers = {
...: 'Accept': 'application/json',
...: 'Authorization': f'key={api_key}',
...: 'project_id': str(project_id),
...: 'Content-Type': 'application/json',
...: }
In [10]: response = requests.get('https://fcm.googleapis.com/fcm/notification?notification_key_name=foo-foo', headers=headers)
In [11]: response.status
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-f75033194368> in <module>
----> 1 response.status
AttributeError: 'Response' object has no attribute 'status'
In [12]: response.content
Out[12]: b'<HTML>\n<HEAD>\n<TITLE>Internal Server Error</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>Internal Server Error</H1>\n<H2>Error 500</H2>\n</BODY>\n</HTML>\n'
In [13]: response.reason
Out[13]: 'Internal Server Error'
In [14]:
好的,“密钥”是云消息选项卡中的“服务器密钥”,“project_id”是相同的“发件人 ID”。
这似乎已经帮我解决了。