我正试图弄清楚如何使用REST API从应用服务器管理FCM设备组。
AFAIK这些是更新的文档:https://firebase.google.com/docs/cloud-messaging/android/device-group#managing_device_groups
以下是我已经可以做的事情:
这就是我无法弄清楚如何做的事情,因为在文档中没有提到它:
根据notification_key_name
解决方法1:如果我尝试使用notification_key_name
创建一个组
已经存在然后我得到一个错误告诉我,但似乎
像非常 hacky方式来查找。
解决方法2:将自己的信息存储在其他地方。
找出哪个设备令牌(registration_id
)属于设备组。
解决方法:和以前一样,将自己的信息存储在其他地方。
从设备组中删除设备令牌(registration_id
)。
解决方法:无。
删除设备组。
解决方法:无。
谢谢!
答案 0 :(得分:10)
- 根据
查询设备组是否已存在notification_key_name
你的第二个解决方法是要走的路。您应该将它存储在App服务器中,与存储注册令牌的位置相同。
- 找出哪个设备令牌(
registration_id
)属于设备组。
与上面的解决方法相同。您必须在App Server上管理这些详细信息。开发人员有责任管理这些细节。如果删除了注册设备,则匹配操作,您也必须将其从App Server中删除。
- 从设备组中删除设备令牌(
registration_id
)。
我不确定你需要什么。 documentation包含有关从设备组中删除注册令牌的详细信息:
在设备组中添加和删除设备
要在现有群组中添加或删除设备,请发送
operation
参数设置为add
或remove
的POST请求,并提供注册令牌以进行添加或删除。< / p>注意:如果从设备组中删除所有现有注册令牌,FCM将删除设备组。 子>
HTTP POST请求
例如,要将具有注册ID 51的设备添加到appUser-Chris,您将发送此请求:
{ "operation": "add", "notification_key_name": "appUser-Chris", "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ", "registration_ids": ["51"] }
响应格式
添加或删除设备的成功请求会返回如下所示的notification_key:
添加/删除注册令牌不需要{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
注意: notification_key_name ,但包含它可以防止您意外使用错误的 notification_key 。 子>
- 删除设备组。
从上述文档中的说明:
注意:如果从设备组中删除所有现有注册令牌,FCM将删除设备组。
答案 1 :(得分:1)
要为第一个问题添加另一个选项,不确定FCM在接受的答案后是否添加了这个选项,但在Android(和IOS)文档的Managing device groups on the app server部分中,有一部分是关于使用GET请求
检索通知密钥 https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
返回
{ "error": "notification_key not found" }
如果设备组不存在,或者是通知密钥,否则。