准备工作:钉钉机器人拿到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={}×tamp={}"\
.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))