准备工作:钉钉机器人拿到Webhook,取出access_token;安全设置选加签,得到secret


# -*- coding: utf-8 -*-
"""
Created on Sun Oct 24 12:55:00 2021

@author: clearwind
"""
#python 3.8
import time
import hmac
import hashlib
import base64
import urllib
import json
import requests
# import session
"""

"""

def getSign(secret):
    timestamp = str(round(time.time() * 1000))
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))

    return sign,timestamp
    
def send_ding(access_token,secret,data,param=None,headers=None):
    TIMEOUT = 5000
    # 请求地址
    webhook_url='https://oapi.dingtalk.com/robot/send'
    # 取得sign
    sign,timestamp=getSign(secret)
    # 拼接请求url
    url="{}?access_token={}&sign={}&timestamp={}"\
        .format(webhook_url,access_token, sign, timestamp)
    # 设置请求数据
    if data:
            data = json.dumps(data)
            print(data)
    # 设置请求参数
    if param:
        url = url + "?" + urllib.parse.urlencode(param)
    # 设置请求头
    head = {"content-type": "application/json"}
    if headers:
        head.update(headers)
    # 发请求
    # response = session.post(url, data=data, headers=head, timeout=TIMEOUT)
    response = requests.post(url, data=data, headers=head, timeout=TIMEOUT)
    # response = 1
    # 请求结果返回
    return response
    

access_token='215ce23c94c8336879c1607eead50e3524b640XXXXXXXXXX'
secret = 'SECa327eba2378bec83b200209096342c37a3ff44c0248d2de1fXXXXXXXXXX' 
_content='''# yum只下载不安装

**1.使用yum**
要使用--downloadonly选项,需要先安装yum-plugin-downloadonly,不安装该包的话,会报下面的错误信息:Command line error: no such option: --downloadonly

yum install yum-plugin-downloadonly


然后使用下面命令下载包


yum install --downloadonly RPM_Name


下载的文件位于/var/cache/yum/x86_64/7/base/packages/目录下,视系统版本而定。

也可以指定下载的目录,如下:


yum install --downloadonly --downloaddir=/ttlsa RPM_Name


同时,会把依赖的包都下载下来的。

**2.使用yumdownloader**

需要安装yum-utils。


yum install yum-utils


使用


yumdownloader RPM_Name


下载的包位于当前目录下。但是,只下载指定的包,不会把该包依赖的包都下载下来的。'''
# 请求数据模板
data={
    "msgtype": "markdown",  
    "markdown": {           
        "title": "py测试",    
        "text": _content    
    },                      
    "at": {                 
        "atMobiles": [""],
        "atUserIds": [""],
        "isAtAll": False    
    }                       
}
# 调用发请求,就收请求结果
resp_text=send_ding(access_token,secret,data).text
print('resp_text:'+str(resp_text))