ServiceNow Push-уведомления застряли в "Ожидании"

Я настроил Push-уведомления на ServiceNow для пользовательского приложения для Android. После запуска определенного события уведомление застревает в системном журнале с типом "Ожидание".

Вот больше деталей:

  • Пользователь может войти в пользовательское приложение на мобильном устройстве и зарегистрироваться в таблице sys_push_notif_app_install;

  • Событие вызывает push-уведомление, и оно успешно записывается в системный журнал;

  • В системном журнале я вижу само сообщение, где также упоминается зарегистрированный токен устройства.

Теперь сообщение остается "ожидающим" в течение определенного периода времени, после чего превращается в "сбой".

В ServiceNow настроено приложение Push, которое содержит ключ API Goolge и значение "REST API" как для Push, так и для обратной связи.

Я также вижу 2 сообщения об ошибках в системном журнале:

app="Push app name" origin="push.feedback" 
 Invalid Feedback REST Message: no thrown error


app="Push app name" origin="push.feedback" elapsed=8 
 exception encountered getting feedback: 
 java.lang.RuntimeException: feedback job does not have a valid 
 Feedback REST Message: com.glide.push.feedback.FeedbackClientRest.getFeedback(FeedbackClientRest.java:52)

Любые идеи высоко ценятся.

1 ответ

Решение

Я наконец смог решить это. Ключевым моментом здесь является проверка правильности настройки приложения Push. Это что-то неясно указано в официальных документах. Итак, для приложения для Android важны следующие моменты:

  • Push = Direct,
  • Обратная связь = REST,
  • Ключ API Google = Ключ сервера FCM (как устаревший, так и новый работают нормально).

Несмотря на рекомендации Google по настройке заголовков HTTP для сообщения REST, уведомления работают нормально как с так и без него. Поэтому, как правило, вы можете оставить стандартную REST "Отправлено Google Cloud Messaging" без изменений.

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