最近我从GCM迁移到FCM通过我的应用程序发送通知,我想知道是否能够从我的应用服务器订阅特定主题的成员 . 如果可能,那么如何确定特定成员令牌是否有效或过期 .
因为在我的数据库中,我接近22L人GCM注册TOKEN id,所以我将创建一个主题并通过我的应用服务器订阅这些成员 .
任何想法来解决这类问题 .
您可以使用Instance ID API通过App Server订阅多个令牌到Topic,具体来说,使用 batchAdd . 它还可以通过返回 NOT_FOUND 错误来识别您订阅的注册令牌是否无效 . 来自文档:
batchAdd
NOT_FOUND
管理多个应用实例的关系图使用Instance ID服务的批处理方法,您可以执行应用实例的批量管理 . 例如,您可以向FCM或GCM主题执行批量添加或删除应用程序实例 . 要管理应用程序实例,请在此 endpoints 调用Instance ID服务,在JSON正文中提供应用程序实例令牌:https://iid.googleapis.com/iid/v1:battAdd
https://iid.googleapis.com/iid/v1:batchRemove参数授权:key = YOUR_API_KEY . 在 Headers 中设置此参数 . to:主题名称 . registration_tokens:要添加或删除的应用程序实例的IID标记数组 . 结果成功时,调用返回HTTP状态200.空结果表示成功订阅令牌 . 对于失败的订阅,结果包含以下错误代码之一:NOT_FOUND - 已删除注册令牌或已卸载应用程序 . INVALID_ARGUMENT - 提供的注册令牌对发件人ID无效 . 内部 - 后端服务器因未知原因而失败 . 重试请求 . TOO_MANY_TOPICS - 每个应用实例的主题数量过多 . 示例POST请求https://iid.googleapis.com/iid/v1:batchAdd内容类型:应用程序/ JSON授权:键= API_KEY{“to”:“/ topics / movies”,“registration_tokens”:[“nKctODamlM4:CKrh_PC8kIb7O ......”,“1uoasi24:9jsjwuw ......”,“798aywu:cba420 ......”],}示例结果HTTP 200 OK{“结果”:{},{ “错误”: “NOT_FOUND”},{},]}
1 回答
您可以使用Instance ID API通过App Server订阅多个令牌到Topic,具体来说,使用
batchAdd
. 它还可以通过返回NOT_FOUND
错误来识别您订阅的注册令牌是否无效 . 来自文档:https://iid.googleapis.com/iid/v1:batchRemove
参数授权:key = YOUR_API_KEY . 在 Headers 中设置此参数 . to:主题名称 . registration_tokens:要添加或删除的应用程序实例的IID标记数组 . 结果成功时,调用返回HTTP状态200.空结果表示成功订阅令牌 . 对于失败的订阅,结果包含以下错误代码之一:NOT_FOUND - 已删除注册令牌或已卸载应用程序 . INVALID_ARGUMENT - 提供的注册令牌对发件人ID无效 . 内部 - 后端服务器因未知原因而失败 . 重试请求 . TOO_MANY_TOPICS - 每个应用实例的主题数量过多 . 示例POST请求https://iid.googleapis.com/iid/v1:batchAdd
内容类型:应用程序/ JSON
授权:键= API_KEY
{
“to”:“/ topics / movies”,
“registration_tokens”:[“nKctODamlM4:CKrh_PC8kIb7O ......”,“1uoasi24:9jsjwuw ......”,“798aywu:cba420 ......”],
}
示例结果HTTP 200 OK
{
“结果”:
{},
{ “错误”: “NOT_FOUND”},
{},
]
}