钉钉群机器人设置——python版本

钉钉群机器人设置------python版本

应用场景

由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点
参考文档及博客
钉钉官方文档
个人博客

钉钉界面操作

1.钉钉群------群设置------机器人

  1. 添加机器人------自定义 类型------添加
  1. 定义机器人名称------勾选加签 ------完成

4.webhook是自动生成的,access_token是代码中access_token,也是自动生成

5.添加机器人成功

程序开发

程序中主要展示需要 @指定人推送内容
@指定人 : 官方文档给出两种方式,可能我操作不对,只能实现使用手机实现@指定人的。有机智的小伙伴可以尝试一下官方文档上的另一种方式
推送内容:推送的内容格式官方给出了几种,我只尝试使用文本和markdown。有机智的小伙伴可以尝试一下官方文档上的另外几种方式

python 复制代码
# -*- coding:utf-8 -*-
# @Time : 2025/1/21 11:51
# @Author: 水兵没月
# @File : Dingding_jqr.py
# @Software: PyCharm
import sys
import traceback
from urllib import parse

import requests
import time
import hashlib
import base64
import hmac
import json
from fake_useragent import UserAgent
# 钉钉Webhook地址
webhook = "https://oapi.dingtalk.com/robot/send"
access_token = "01010f5983cdc79d006eda01b4e**************379cd8ba0e42693"   # webhook 自动生成
secret = "SEC098e6793d38e0154a1f81a********************ebf02ae2ff74ca"  # 钉钉上可以生成
mobile_list = ["137*******"]   # @指定人的列表

# 加签函数
def get_sign(secret):
    timestamp = str(int(time.time() * 1000))  # 当前时间戳(毫秒)
    secret_byte = bytes(timestamp +'\n'+secret, encoding='utf-8')  # 创建签名数据
    hmac_key = bytes(secret, encoding='utf-8')  # 使用secret创建HMAC密钥
    sign = hmac.new(hmac_key, secret_byte, digestmod=hashlib.sha256).digest()  # 生成签名
    sign_base64 = parse.quote_plus(base64.b64encode(sign))
    return sign_base64, timestamp  # 返回签名和时间戳

# 发送消息函数
def send_message(content):
    sign, timestamp = get_sign(secret)  # 获取签名和时间戳
    url = f"{webhook}?access_token={access_token}&timestamp={timestamp}&sign={sign}"  # 拼接成最终请求地址
    stauts = content["stauts"]
    stauts = "成功" if stauts else "失败"
    msg_except = content["exception"]
    msg_time = str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(time.time()))))
    # markdown 类型展示
    message = {
     "msgtype": "markdown",
     "markdown": {
         "title":"程序执行情况",
         "text": f"**执行情况: {stauts}**\n\n"
                 f"**服务器类型: {sys.platform}**\n\n"
                 f"**异常信息: {msg_except}**\n\n"
                 f"**时间: {msg_time}**\n\n @137*******"
     },
      "at": {
          "atMobiles": mobile_list,
          "isAtAll": False
      }
 }
 	# 文本类型展示
    # message = {
    #     "msgtype": "text",  # 消息类型
    #     "at": {
    #       "atMobiles": mobile_list,
    #       "atUserIds": [],
    #       "isAtAll": False
    #     },
    #     "text": {
    #     "content": f"{content}+"+"@137*******"
    #     },
    # }
    headers = {'Content-Type': 'application/json', "User-Agent":UserAgent().Chrome}  # 设置请求头
    response = requests.post(url, data=json.dumps(message), headers=headers)  # 发送请求

    # 打印响应结果
    if response.status_code == 200:
        return response.json()
    else:
        return response.text

效果展示

相关推荐
北漂程序员学习11 分钟前
如何避免被目标网站识别为爬虫?
爬虫·python·scrapy·flask·scipy
MocapLeader17 分钟前
新型多机器人协作运输系统,轻松应对复杂路面
机器人·ros·强化学习·多机器人协同·协同搬运
纪元A梦24 分钟前
华为OD机试真题——数据分类(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题
cnbestec25 分钟前
欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会
人工智能·机器人
Conan х33 分钟前
第1 篇:你好,时间序列!—— 开启时间数据探索之旅
人工智能·python·神经网络·机器学习·信息可视化
AI糊涂是福34 分钟前
详细的PyCharm安装教程
ide·python·pycharm
站大爷IP1 小时前
Python中__init__方法的深度解析:构造对象的艺术
python
~在杰难逃~1 小时前
DB-Day10笔记-数据库事务问题补充&Python与MySQL的交互
数据库·笔记·python
AI技术学长1 小时前
2025年高级计算机视觉工程师路线图
人工智能·python·深度学习·机器学习·计算机视觉·数学基础·学习路线图
郁大锤1 小时前
PyCharm 初级教程:从安装到第一个 Python 项目
ide·python·pycharm