1、钉钉机器人报警-测试

  1. 钉钉机器人测试:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

1.1、钉钉机器人报警-代码编写发送

  1. 1、钉钉发送报警-代码编写
  2. 1-1、此处举例是发送markdown形式的钉钉告警消息,其实相当于发送post请求
  3. 1-2、举例Demo
  4. HttpClient httpclient = HttpClients.createDefault();
  5. HttpPost httpPost = new HttpPost(webhookToken.trim());
  6. //必须设置参数类型
  7. httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
  8. StringBuilder sb = new StringBuilder();
  9. sb.append(" { ");
  10. sb.append(" \"msgtype\": \"markdown\", ");
  11. sb.append(" \"markdown\": {\"title\":\"" + title + "\", ");
  12. sb.append(" \"text\":\"" + content + "\" ");
  13. sb.append(" } ");
  14. sb.append(" } ");
  15. StringEntity se = new StringEntity(sb.toString(), "utf-8");
  16. httpPost.setEntity(se);
  17. HttpResponse response;
  18. try {
  19. response = httpclient.execute(httpPost);
  20. if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
  21. String result = EntityUtils.toString(response.getEntity(), "utf-8");
  22. }
  23. } catch (Exception e) {
  24. }

1.2、钉钉机器人报警-测试-关键字测试

  1. 1、关键字测试:
  2. curl 'https://oapi.dingtalk.com/robot/send?access_token=50c9ac8970dfc07dab6964acf35269c4b65163b27a0cbb421e7de52be9779f6a' \
  3. -H 'Content-Type: application/json' \
  4. -d '{"msgtype": "text","text": {"content": "质量测试报警, 我就是我, 是不一样的烟火"}}'
  5. #!/usr/bin/env python
  6. # -*- coding: utf-8 -*-
  7. import json
  8. import requests
  9. def send_msg(url, msg):
  10. headerss = {'Content-Type': 'application/json; charset=utf-8'}
  11. datas = {
  12. "msgtype": "text",
  13. "text": {
  14. "content": "质量测试报警 %s" % msg
  15. }
  16. }
  17. MessageBody = json.dumps(datas)
  18. r = requests.post(url, data=MessageBody, headers=headerss)
  19. return r.text
  20. if __name__ == '__main__':
  21. msg = 'ssssss'
  22. url = 'https://oapi.dingtalk.com/robot/send?access_token=50c9ac8970dfc07dab6964acf35269c4b65163b27a0cbb421e7de52be9779f6a'
  23. print(send_msg(url, msg))

1.3、钉钉机器人报警-测试-签名测试

  1. 1、签名测试:
  2. 1、先生成时间戳和签名:
  3. <dependency>
  4. <groupId>commons-codec</groupId>
  5. <artifactId>commons-codec</artifactId>
  6. <version>1.10</version>
  7. </dependency>
  8. import time
  9. import hmac
  10. import hashlib
  11. import base64
  12. import urllib
  13. timestamp = long(round(time.time() * 1000))
  14. secret = 'SEC348845990c612ebf4ea91d4770d22da5725a3af9d72f337412c7bf9d46973545'
  15. secret_enc = bytes(secret).encode('utf-8')
  16. string_to_sign = '{}\n{}'.format(timestamp, secret)
  17. string_to_sign_enc = bytes(string_to_sign).encode('utf-8')
  18. hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
  19. sign = urllib.quote_plus(base64.b64encode(hmac_code))
  20. print(timestamp)
  21. print(sign)
  22. 2postman post请求访问:
  23. https://oapi.dingtalk.com/robot/send?access_token=50c9ac8970dfc07dab6964acf35269c4b65163b27a0cbb421e7de52be9779f6a
  24. &timestamp=1607591845428&sign=6kMzVvlWOdI5zNwTZI666uSTygV6%2FcPrHIlb6qBPaPI%3D
  25. body:自定义发送的内容
  26. {
  27. "msgtype": "text",
  28. "text": {
  29. "content": "质量测试报警, 我就是我, 是不一样的烟火"
  30. }
  31. }

2、钉钉机器人报警内容格式化

  1. 待续......

3、钉钉开发文档

  1. https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq