FCM getTopics не работает - "attstStatus":"NOT_ROOTED"
В настоящее время я работаю и тестирую подписки на темы 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"
вместо.
Я попытался посмотреть в Google Docs об этом, я смог найти это:
atstStatus - возвращает ROOTED, NOT_ROOTED или UNKNOWN, чтобы указать, является ли устройство рутованным.
Но нет ничего описать, что это значит или как это должно быть решено.
Как это решить?
Благодарю.
1 ответ
Я нашел решение.
Это происходит, когда токен отписан от всех тем, включая значение по умолчанию: android
а также ios
а также all
,
В таком случае мы должны учитывать, что токен действителен, но не связан с какой-либо темой.
Очень важно сначала проверить наличие некоторых подписок, прежде чем пытаться выполнить действия с токеном, если только мы не можем получить неопределенную ошибку.
После повторной подписки на какую-то тему она вернулась к нормальной работе.