钉钉自定义机器人Python脚本推送通知

自定义机器人接入文档

获取自定义机器人Webhook

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

安装依赖

pip install requests

Python代码

# -*- coding: utf-8 -*-
import time
import hashlib
import base64
import hmac
import requests
from urllib.parse import quote

# 自定义机器人webhook
dingTalkUrl = 'https://oapi.dingtalk.com/robot/send?access_token=xxxx'
# 自定义机器人加签密钥
dingTalkSecret = 'xxxx'


def dingTalkSign():
    # 获取当前时间戳,并将其转换为毫秒级
    timestamp = int(time.time() * 1000)
    # 将时间戳和钉钉应用的密钥拼接在一起,将拼接后的字符串转换为字节数组
    signBefore = ('%s\n%s' % (timestamp, dingTalkSecret)).encode('utf-8')
    # 用HMAC-SHA256算法对字节数组进行签名
    hsha256 = hmac.new(dingTalkSecret.encode('utf-8'), signBefore, hashlib.sha256)
    # 将签名进行Base64编码,将编码后的签名进行URL编码
    sign = quote(base64.b64encode(hsha256.digest()))
    return {"timestamp": timestamp, "sign": sign}


def sendMessage(message, atMobiles=[], isAtAll=False):
    print("发送内容:", message, atMobiles, isAtAll)
    json = {
        "msgtype": "text",
        "text": {
            "content": message,
        },
        "at": {
            "atMobiles": atMobiles,
            "isAtAll": isAtAll
        }
    }
    sign = dingTalkSign()
    response = requests.post(url=dingTalkUrl, params=sign, json=json)
    print("响应内容:", response.json())


'''
每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟。
'''
if __name__ == "__main__":
    # 发送消息不@任何人
    # sendMessage('服务器不正常啦!')
    # 发送消息并@指定人员
    # sendMessage(message='服务器不正常啦!', atMobiles=['13888888888'])
    # 发送消息并@所有人员
    sendMessage(message='服务器不正常啦!', isAtAll=True)

钉钉消息

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逢生博客

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值