我目前正在为FCM主题工作和测试订阅。我试图根据用户配置文件的详细信息更新用户订阅的主题列表。
为了获得用户已经订阅的主题列表,我使用了这个函数,该函数用于大约一个小时的测试:
app.get("/getTopics", function(req, res, next) {
var headers = {
'User-Agent': 'Super Agent/0.0.1',
'Authorization': 'key=my fcm key in here',
'Content-Type': 'application/json'
};
// Configure the request
let notifications_token = "the user notification token returned from the actuall app";
var fcm_firebase = "https://iid.googleapis.com/iid/info/" + notifications_token + "?details=true";
var options = {
url: fcm_firebase,
method: 'POST',
headers: headers
};
// Start the request
request(options, function (error, response, body) {
if (body)
{
let body1 = JSON.parse(body);
if (body1.rel)
{
let topics = [];
for (let k in body1.rel.topics) {
topics.push(k);
}
res.send(topics);
}
else res.send("Error");
}
if (error)
res.send(error);
});
});正如您所看到的,它已经在工作,我收到了用户订阅的主题。突然间,也许由于许多考试,我没有收到题目,我收到了
"attestStatus":"NOT_ROOTED"而不是。
我试着去谷歌的文档里查了一下,我找到了这个:
attestStatus -返回根,NOT_ROOTED,或未知,以指示设备是否根。
但没有任何东西描述这意味着什么,也没有任何东西描述应该如何解决这个问题。
如何解决这个问题?
谢谢。
发布于 2018-02-18 20:40:34
我已经找到了解决办法。
当令牌从所有主题中取消订阅时,就会发生这种情况,包括缺省值:android、ios和all。
在这种情况下,我们应该认为令牌是有效的,但不植根于任何主题。
在尝试使用令牌执行操作之前,首先验证是否存在一些订阅是非常重要的,除非我们可以收到一个未定义的错误。
在重新订阅某个主题之后,它又恢复了正常工作。
https://stackoverflow.com/questions/48852743
复制相似问题