API FCM HTTP v1 возвращает 403 ⇐ JAVA
-
Гость
API FCM HTTP v1 возвращает 403
Я перешел на использование нового API FCM HTTP v1 от Google, и сегодня сообщения отправляются нормально. Но у меня проблема, иногда без объяснения причин на некоторые сообщения приходит код статуса 403. Все настройки в порядке, служба активна, токен аутентификации в порядке, и я не знаю, почему эти несколько сообщений в день возвращают 403. Есть ли у кого-нибудь какие-нибудь советы?
Вот мой код, который его отправляет:
try (CloseableHttpClient client = HttpClientBuilder.create().build()) { String urlFinal = FCM_URL.replace("nomeprojeto", Projetos.getProjetoId(keyStore)); Сообщение HttpPost = новый HttpPost (urlFinal); // Устанавливаем заголовки post.setHeader("Тип контента", "application/json"); post.setHeader("Авторизация", "Носитель" + getAccessToken(keyStore)); // Генерация Json Корневое сообщение = новый корень(); mensagem.message.notification = msg.notification; mensagem.message.token = msg.token; mensagem.message.data = msg.data; Строка json = новый ObjectMapper().writeValueAsString(mensagem); //System.out.println(json); post.setEntity(new StringEntity(json, "UTF-8")); // Вызов http Ответ HttpResponse = client.execute(post); int statusCode = response.getStatusLine().getStatusCode(); // Подтверждаем ответ. если (statusCode == 200) { pushBean.log(msg, хранилище ключей); System.out.println("push Processado - " + новая дата()); возвращаться; } если (statusCode == 404) { // Индикация документа, не позволяющая сохранять номера 400 и 404 // https://firebase.google.com/docs/cloud- ... m?hl=pt-br Строковая ошибка = statusCode + " - Токен FCM не встречается: " + msg.token; pushBean.logErro(msg, keyStore, error + msg.token); возвращаться; } если (код состояния == 403) { // Индикация документа, не позволяющая сохранить номер 403 // https://firebase.google.com/docs/cloud- ... m?hl=pt-br Строковая ошибка = «403 — Токен FCM не получен: » + msg.token; pushBean.logErro(msg, keyStore, error + msg.token); возвращаться; } если (statusCode != 200) { Строковая ошибка = "Ошибка, связанная с отправкой FCM, код возврата = %d"; ошибка = String.format(ошибка, statusCode); FCMException ex = новое FCMException (ошибка); бросить бывшего; } С уважением
Я перешел на использование нового API FCM HTTP v1 от Google, и сегодня сообщения отправляются нормально. Но у меня проблема, иногда без объяснения причин на некоторые сообщения приходит код статуса 403. Все настройки в порядке, служба активна, токен аутентификации в порядке, и я не знаю, почему эти несколько сообщений в день возвращают 403. Есть ли у кого-нибудь какие-нибудь советы?
Вот мой код, который его отправляет:
try (CloseableHttpClient client = HttpClientBuilder.create().build()) { String urlFinal = FCM_URL.replace("nomeprojeto", Projetos.getProjetoId(keyStore)); Сообщение HttpPost = новый HttpPost (urlFinal); // Устанавливаем заголовки post.setHeader("Тип контента", "application/json"); post.setHeader("Авторизация", "Носитель" + getAccessToken(keyStore)); // Генерация Json Корневое сообщение = новый корень(); mensagem.message.notification = msg.notification; mensagem.message.token = msg.token; mensagem.message.data = msg.data; Строка json = новый ObjectMapper().writeValueAsString(mensagem); //System.out.println(json); post.setEntity(new StringEntity(json, "UTF-8")); // Вызов http Ответ HttpResponse = client.execute(post); int statusCode = response.getStatusLine().getStatusCode(); // Подтверждаем ответ. если (statusCode == 200) { pushBean.log(msg, хранилище ключей); System.out.println("push Processado - " + новая дата()); возвращаться; } если (statusCode == 404) { // Индикация документа, не позволяющая сохранять номера 400 и 404 // https://firebase.google.com/docs/cloud- ... m?hl=pt-br Строковая ошибка = statusCode + " - Токен FCM не встречается: " + msg.token; pushBean.logErro(msg, keyStore, error + msg.token); возвращаться; } если (код состояния == 403) { // Индикация документа, не позволяющая сохранить номер 403 // https://firebase.google.com/docs/cloud- ... m?hl=pt-br Строковая ошибка = «403 — Токен FCM не получен: » + msg.token; pushBean.logErro(msg, keyStore, error + msg.token); возвращаться; } если (statusCode != 200) { Строковая ошибка = "Ошибка, связанная с отправкой FCM, код возврата = %d"; ошибка = String.format(ошибка, statusCode); FCMException ex = новое FCMException (ошибка); бросить бывшего; } С уважением
Мобильная версия