用python配置钉钉机器人

摘要

linux shell中, 钉钉机器人的消息主体貌似必须是写死的, 很不灵活.
于是使用python发送钉钉消息

代码展示

用python发送钉钉时, 不需要导入钉钉相关的依赖

 -*- coding:utf-8 -*-
import os
import datetime
import requests
import json

##### 发消息的主体 #####
def msg(text):
    json_text = {
        "msgtype": "text",
        "at": {
            "atMobiles": [
                "166****6666"
            ],
            # 一般不需要@所有人, 设置false后, 分别配置即可
            "isAtAll": False
        },
        "text": {
            "content": text
        }
    }
    print(requests.post(api_url, json.dumps(json_text), headers=headers).content)

##### 主函数 #####
if __name__ == '__main__':
  # 获取昨天的时间
  yesterday = (datetime.date.today() + datetime.timedelta(-1)).strftime('%Y%m%d')
  # 运行shell脚本
  os.system("bash checkdata.sh")
  # 读取结果文件
  try:
      f = open('res/check.' + yesterday, 'r') # 打开文件
      text = f.read() # 读取文件内容
  finally:
      if f:
          f.close()

  headers = {'Content-Type': 'application/json;charset=utf-8'}
  # 将钉钉机器人给的地址写到此处
  api_url = "https://oapi.dingtalk.com/robot/send?access_token=***"

  # 调用方法
  msg(text)
  

补充

再补充一个shell发钉钉的示例(点此查看钉钉官方文档)

curl 'https://oapi.dingtalk.com/robot/send?access_token=***' \
  -H 'Content-Type: application/json' \
  -d '{
    "msgtype": "markdown",
    "markdown": {
      "title":"任务报警 @17600773107 @16601512295",
      "text": "## 异常概述: 进程中断 \n\n 进程描述: node02节点flume任务-loadlogs \n\n 负责人: @166****6666 @188****8888 \n\n  默认处理方案: 重新启动"
    },
    "at": {
      "atMobiles": [
        "166****6666",
        "188****8888"
      ],
      "isAtAll": false
    }
  }'

你可能感兴趣的:(python脚本)