[РЕШЕНО] Sending failed: ReferenceError: identifier 'CurlHttpRequest' undefined (после обновления до 6.2 перестал работать telegram)

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Ответить
[РЕШЕНО] Sending failed: ReferenceError: identifier 'CurlHttpRequest' undefined (после обновления до 6.2 перестал работать telegram)
После обновления до 6.2 неожиданно перестал работать телеграмм.
Если зайти в Способы оповещения и нажать "тест" будет ошибка:  Sending failed: ReferenceError: identifier 'CurlHttpRequest' undefined
Доб обновления до 6.2 все работало исправно.
Может кто сталкивался что с этим делать ?
Решение (чиним уведомления telegram на zabbix 6.2):
0. https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegra­m/media_telegram.yaml качаем media_telegram.yaml себе на комп.
1. Администрирование - Способы оповещения (Administration/Media type)
2. Справа вверху нажимаем - ИМПОРТ - и выбираем (media_telegram.yaml)
3. Выбираем "обновить существующие"
4. Заходим в способ оповещения телеграмм и нажимаем редактировать - далее скрипт.
проверяем что на 41 строчке:     request.addHeader('Content-Type: application/json');
если нет то. меняем этот скрипт с 1 по 77 строчку на вот этот кусок:
получиться что он станет с 1 по 97 и общая длина скрипта "62652 символов осталось"
Код
var Telegram = {
    token: null,
    to: null,
    message: null,
    proxy: null,
    parse_mode: null,

    escapeMarkup: function (str, mode) {
        switch (mode) {
            case 'markdown':
                return str.replace(/([_*\[`])/g, '\\$&');

            case 'markdownv2':
                return str.replace(/([_*\[\]()~`>#+\-=|{}.!])/g, '\\$&');

            default:
                return str;
        }
    },

    sendMessage: function () {
        var params = {
            chat_id: Telegram.to,
            text: Telegram.message,
            disable_web_page_preview: true,
            disable_notification: false
        },
        data,
        response,
        request = new HttpRequest(),
        url = 'https://api.telegram.org/bot' + Telegram.token + '/sendMessage';

        if (Telegram.parse_mode !== null) {
            params['parse_mode'] = Telegram.parse_mode;
        }

        if (Telegram.proxy) {
            request.setProxy(Telegram.proxy);
        }

        request.addHeader('Content-Type: application/json');
        data = JSON.stringify(params);

        // Remove replace() function if you want to see the exposed token in the log file.
        Zabbix.log(4, '[Telegram Webhook] URL: ' + url.replace(Telegram.token, '<TOKEN>'));
        Zabbix.log(4, '[Telegram Webhook] params: ' + data);
        response = request.post(url, data);
        Zabbix.log(4, '[Telegram Webhook] HTTP code: ' + request.getStatus());

        try {
            response = JSON.parse(response);
        }
        catch (error) {
            response = null;
        }

        if (request.getStatus() !== 200 || typeof response.ok !== 'boolean' || response.ok !== true) {
            if (typeof response.description === 'string') {
                throw response.description;
            }
            else {
                throw 'Unknown error. Check debug log for more information.';
            }
        }
    }
};

try {
    var params = JSON.parse(value);

    if (typeof params.Token === 'undefined') {
        throw 'Incorrect value is given for parameter "Token": parameter is missing';
    }

    Telegram.token = params.Token;

    if (params.HTTPProxy) {
        Telegram.proxy = params.HTTPProxy;
    } 

    params.ParseMode = params.ParseMode.toLowerCase();
    
    if (['markdown', 'html', 'markdownv2'].indexOf(params.ParseMode) !== -1) {
        Telegram.parse_mode = params.ParseMode;
    }

    Telegram.to = params.To;
    Telegram.message = params.Subject + '\n' + params.Message;

    if (['markdown', 'markdownv2'].indexOf(params.ParseMode) !== -1) {
        Telegram.message = Telegram.escapeMarkup(Telegram.message, params.ParseMode);
    }

    Telegram.sendMessage();

    return 'OK';
}
Услуги Системного Администратора - Работаю только с Юр. Лицами по договору обслуживания.
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
:) ;) :D 8-) :( :| :cry: :evil: :o :oops: :{} :?: :!: :idea:
Защита от автоматических сообщений. Введите символы, изображенные на этой картинке в поле ввода &quote;Код подтверждения&quote;.