gpt4 book ai didi

android - 如何检测 token 是否已过期或未在应用服务器上注册 firebase FCM 通知?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:04 27 4
gpt4 key购买 nike

我正在使用以下代码将 FCM 通知从服务器发送到设备:

    String fcmServerKey = externalConfig.getFcmServerKey();
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(HTTPS_FCM_GOOGLEAPIS_COM_FCM_SEND);

httpPost.setEntity(new StringEntity(message, ContentType.create("application/json")));
httpPost.setHeader("Authorization", "key=" + fcmServerKey);

CloseableHttpResponse closeableHttpResponse= httpclient.execute(httpPost);

在上面的代码中,当我获得响应对象 closeableHttpResponse 时,如何检测用于发送此请求的 fcm token 是否已过期或未注册?

当我从 firebase 应用程序仪表板尝试使用其 fcm token 将通知发送到设备并且从设备中删除应用程序后,我在 firebase 仪表板上看到 Failed,鼠标悬停在 Failed 上 我看到 未注册的注册 token

如何从 api 响应对象 closeableHttpResponse 中检测到 Unregistered registration token 的上述错误情况?

最佳答案

使用 Server Reference API 获取有关设备注册 token 的相关信息。如果响应为空,则表示 token 已过期或未注册。

示例 GET 请求

https://iid.googleapis.com/iid/info/nKctODamlM4:...clJONHoA?details=true
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

示例结果

HTTP 200 OK
{
"application":"com.iid.example",
"authorizedEntity":"123456782354",
"platform":"Android",
"attestStatus":"ROOTED",
"appSigner":"1a2bc3d4e5",
"connectionType":"WIFI",
"connectDate":"2015-05-12
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}

关于android - 如何检测 token 是否已过期或未在应用服务器上注册 firebase FCM 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43889697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com