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,

В таком случае мы должны учитывать, что токен действителен, но не связан с какой-либо темой.

Очень важно сначала проверить наличие некоторых подписок, прежде чем пытаться выполнить действия с токеном, если только мы не можем получить неопределенную ошибку.

После повторной подписки на какую-то тему она вернулась к нормальной работе.

Другие вопросы по тегам