var weixin = { 
  key: null, 
  message: null, 
  msgtype: "markdown", 
  proxy: null, 
sendMessage: function () { 
    var params = { 
       msgtype: weixin.msgtype, 
       markdown: { 
          content: weixin.message 
        }, 
      }, 
      data, 
      response, 
      request = new HttpRequest(), 
      url = 
        "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=" + 
        weixin.key; 
    if (weixin.proxy) { 
      request.setProxy(weixin.proxy); 
    } 
    request.addHeader('Content-Type: application/json');
    data = JSON.stringify(params); 
    // Remove replace() function if you want to see the exposed key in the log file. 
    Zabbix.Log( 
      4, 
      "[weixin Webhook] URL: " + url.replace(weixin.key, "<BOT KEY>") 
    ); 
    Zabbix.Log(4, "[weixin Webhook] params: " + data); 
    response = request.post(url, data); 
    Zabbix.Log(4, "[weixin Webhook] HTTP code: " + request.getStatus()); 
    try { 
      response = JSON.parse(response); 
    } catch (error) { 
      response = null; 
    } 
    if (request.getStatus() !== 200 || response.errcode !== 0) { 
      if (typeof response.errmsg === "string") { 
        throw response.errmsg; 
      } else { 
        throw "Unknown error. Check debug log for more information."; 
      } 
    }
  }, 
}; 
try { 
  var params = JSON.parse(value); 
  if (typeof params.Key === "undefined") { 
    throw 'Incorrect value is given for parameter "Key": parameter is missing'; 
  } 
  weixin.key = params.Key; 
  if (params.HTTPProxy) { 
    weixin.proxy = params.HTTPProxy; 
  } 
  weixin.to = params.To; 
  weixin.message = params.Subject + "\n" + params.Message; 
  weixin.sendMessage(); 
  return "OK"; 
} catch (error) { 
  Zabbix.Log(4, "[weixin Webhook] notification failed: " + error); 
  throw "Sending failed: " + error + "."; 
}

最后修改:2023 年 02 月 19 日
如果觉得我的文章对你有用,请随意赞赏