pred8or
@pred8or

Zabbix 5 — что не так с извещениями в Telegram?

По руководству был настроен бот, тест сообщений в чат проходил, даже сообщения отправлялись. После этого была сделана попытка подкрутить шаблоны сообщений, в т.ч. вставить эмодзи. И всё сломалось. А сейчас даже тест сообщений не проходит.

Media type test failed.

Sending failed: Bad Request: can't parse entities: Character '{' is reserved and must be escaped with the preceding '\'.


5f59e716a24c1025841492.png

Если убрать скобочки, тест проходит. Но в реальных сообщениях разных символов, в том числе '-', '(' и т.п. дофига и все эти сообщения оседают в Action Log.

Ну, и чтоб 2 раза не вставать - как например в subject сообщения вставить эмодзи, например, SOS с кодом \xF0\x9F\x86\x97 ? Маркдаун :sos: тоже не срабатывает. Если попытаться вставить сам символ, то ругается при уже сохранении страницы Media Type.
  • Вопрос задан
  • 2689 просмотров
Решения вопроса 1
@c0rnoTa
Эмоджи можно определять как Unicode Surrogates (вида `\u01234\uABCD` )

Тогда в JS-скрипте отправки сообщения в телеграм надо 29-ю строку вида
data = JSON.stringify(params);
заменить на
var dataJSON = JSON.stringify(params);
        var re = /\\u([0-9A-F]{4})/g;
        data = dataJSON.replace(re, 'u$1');


Суть в том, что JSON.stringify экранирует все слэши в Surrogates, получается два слэша. Поэтому, после того, как получили JSON с data для отправки надо вернуть один слэш и это изменение делаем только для Unicode Surrogates, а не вообще по тексту. Регулярка в помощь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mr_welk
В 5 версии заббикса (у меня 5.2.5) смайлы не работают кодами, но! их можно скопировать прямо картинками и вставить в шаблон
типа вот так:
-----------------------------------------------------------------------------
✅Проблема решена через {EVENT.DURATION} в {EVENT.RECOVERY.TIME} дата: {EVENT.RECOVERY.DATE}

единственное, не все проходят, возможно, UTF16 не годятся.
У меня такие подошли ✅ ‼️ ⚠️
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы