Ad Widget

Collapse

Webhook icq

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • armagedon_kr
    Junior Member
    • Mar 2018
    • 11

    #1

    Webhook icq

    Уважаемые коллеги, помогите пожалуйста!!!
    На zabbix 5,2 работал данный Webhook. На версии Zabbix 6.2 перестал
    Code:
    var ICQ = {
        token: null,
        to: null,
        message: null,
    
        sendMessage: function() {
            var  response,
            request = new CurlHttpRequest(),
            url = 'https://api.icq.net/bot/v1/messages/sendText?token=' + ICQ.token + '&chatId=' + ICQ.to + '&text=' + ICQ.message;
    
            request.AddHeader('Content-Type: application/json');
    
            // Remove replace() function if you want to see the exposed token in the log file.
            Zabbix.Log(4, '[ICQ Webhook] URL: ' + url.replace(ICQ.token, '<TOKEN>'));
            Zabbix.Log(4, '[ICQ Webhook] chat(message): ' + ICQ.to + '('+ ICQ.message +')');
            response = request.Post(encodeURI(url));
            Zabbix.Log(4, '[ICQ Webhook] HTTP code: ' + request.Status());
    
            try {
                response = JSON.parse(response);
            }
            catch (error) {
                response = null;
            }
    
            if (request.Status() !== 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';
        }
        
        ICQ.token = params.Token;
        ICQ.to = params.To;
        ICQ.message = params.Subject + '\n' + params.Message;
        ICQ.sendMessage();
    
        return 'OK';
    }
    catch (error) {
        Zabbix.Log(4, '[ICQ Webhook] notification failed: ' + error);
        throw 'Sending failed: ' + error + '.';
    }​
    Сначала была такая ошибка "
    • Sending failed: ReferenceError: identifier 'CurlHttpRequest' undefined.
    ​"
    Я исправил " request = new CurlHttpRequest()," на " request = new HttpRequest(),"

    Теперь другая ошибка "
    • Sending failed: TypeError: undefined not callable (property 'AddHeader' of [object Object]).
    ​"
    И тут я уже не могу понять.

    Прошу помочь!
  • Answer selected by Kos at 12-09-2022, 14:14.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Вообще-то хорошей практикой является почитать Release Notes (включая все пропущенные версии), прежде чем обновляться.
    Ссылка на нужную вам часть из Release Notes v5.4: тыц (синим выделено мной).
    The 'CurlHttpRequest' object has been renamed to 'HttpRequest' for simplicity. The previous object naming is now deprecated and its support will be discontinued after Zabbix 6.0.

    Methods also have been renamed for greater consistency with JavaScript:
    log Log
    addHeader AddHeader
    clearHeader ClearHeader
    getHeaders GetHeaders
    get Get
    put Put
    post Post
    delete Delete
    setHttpAuth SetHttpAuth
    setProxy SetProxy
    getStatus Status
    The previous method names are now deprecated and their support will be discontinued after Zabbix 6.0.
    Другими словами: не только имя объекта поменялось ('CurlHttpRequest' -> 'HttpRequest'), но и имена некоторых его методов, в том числе 'AddHeader' -> 'addHeader' и 'Post' -> 'post', а также 'Status' -> 'getStatus'. Кстати, тогда же и метод 'Zabbix.Log' был переименован в 'Zabbix.log'.

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #2
      Вообще-то хорошей практикой является почитать Release Notes (включая все пропущенные версии), прежде чем обновляться.
      Ссылка на нужную вам часть из Release Notes v5.4: тыц (синим выделено мной).
      The 'CurlHttpRequest' object has been renamed to 'HttpRequest' for simplicity. The previous object naming is now deprecated and its support will be discontinued after Zabbix 6.0.

      Methods also have been renamed for greater consistency with JavaScript:
      log Log
      addHeader AddHeader
      clearHeader ClearHeader
      getHeaders GetHeaders
      get Get
      put Put
      post Post
      delete Delete
      setHttpAuth SetHttpAuth
      setProxy SetProxy
      getStatus Status
      The previous method names are now deprecated and their support will be discontinued after Zabbix 6.0.
      Другими словами: не только имя объекта поменялось ('CurlHttpRequest' -> 'HttpRequest'), но и имена некоторых его методов, в том числе 'AddHeader' -> 'addHeader' и 'Post' -> 'post', а также 'Status' -> 'getStatus'. Кстати, тогда же и метод 'Zabbix.Log' был переименован в 'Zabbix.log'.

      Comment

      • armagedon_kr
        Junior Member
        • Mar 2018
        • 11

        #3
        Уважаемые коллеги, помогите пожалуйста!!!
        На zabbix 5,2 работал данный Webhook. На версии Zabbix 6.2 перестал
        Code:
        var ICQ = {
        token: null,
        to: null,
        message: null,
        
        sendMessage: function() {
        var response,
        request = new CurlHttpRequest(),
        url = 'https://api.icq.net/bot/v1/messages/sendText?token=' + ICQ.token + '&chatId=' + ICQ.to + '&text=' + ICQ.message;
        
        request.AddHeader('Content-Type: application/json');
        
        // Remove replace() function if you want to see the exposed token in the log file.
        Zabbix.Log(4, '[ICQ Webhook] URL: ' + url.replace(ICQ.token, '<TOKEN>'));
        Zabbix.Log(4, '[ICQ Webhook] chat(message): ' + ICQ.to + '('+ ICQ.message +')');
        response = request.Post(encodeURI(url));
        Zabbix.Log(4, '[ICQ Webhook] HTTP code: ' + request.Status());
        
        try {
        response = JSON.parse(response);
        }
        catch (error) {
        response = null;
        }
        
        if (request.Status() !== 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';
        }
        
        ICQ.token = params.Token;
        ICQ.to = params.To;
        ICQ.message = params.Subject + '\n' + params.Message;
        ICQ.sendMessage();
        
        return 'OK';
        }
        catch (error) {
        Zabbix.Log(4, '[ICQ Webhook] notification failed: ' + error);
        throw 'Sending failed: ' + error + '.';
        }​
        Сначала была такая ошибка "
        • Sending failed: ReferenceError: identifier 'CurlHttpRequest' undefined.
        ​"
        Я исправил " request = new CurlHttpRequest()," на " request = new HttpRequest(),"

        Теперь другая ошибка "
        • Sending failed: TypeError: undefined not callable (property 'AddHeader' of [object Object]).
        ​"
        И тут я уже не могу понять.

        Прошу помочь!
        Спасибо. Я устанавливал новый Zabbix с нуля.
        Last edited by armagedon_kr; 12-09-2022, 10:24.

        Comment

        • armagedon_kr
          Junior Member
          • Mar 2018
          • 11

          #4
          Спасибо. Я устанавливал новый Zabbix с нуля.

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3404

            #5
            Originally posted by armagedon_kr
            Спасибо. Я устанавливал новый Zabbix с нуля.
            Какой нехороший вебхук - остался от версии 5.2, читать Release Notes-ы не захотел, да ещё и обновляться автоматически не спешит!
            Я надеюсь, из моего ответа понятно, что именно в нём надо поменять?

            Comment

            • armagedon_kr
              Junior Member
              • Mar 2018
              • 11

              #6
              Originally posted by Kos
              Какой нехороший вебхук - остался от версии 5.2, читать Release Notes-ы не захотел, да ещё и обновляться автоматически не спешит!
              Я надеюсь, из моего ответа понятно, что именно в нём надо поменять?
              Да. Огромное спасибо. Уже все сделал

              Comment

              Working...