import argparse
import base64
import hashlib
import hmac
import json
import time
import urllib.parse
import requests
# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='Send message to DingTalk bot')
# 添加命令行参数
parser.add_argument('--message', required=True, help='Message content to send')
# 解析命令行参数
args = parser.parse_args()
secret = "secret"
access_token = "access_token "
# 发送消息到DingTalk bot
def send_message(message_content):
# 签名
timestamp = str(round(time.time() * 1000))
string_sign = '{}\n{}'.format(timestamp, secret)
sign = base64.b64encode(
hmac.new(secret.encode("utf-8"), string_sign.encode("utf-8"), hashlib.sha256).digest()).decode()
# 消息体
message = {
"msgtype": "text",
"text": {
"content": message_content
},
"at": {
"isAtAll": True
}
}
# 请求url
url = f"https://oapi.dingtalk.com/robot/send?access_token={access_token}"
url_params = {
'access_token': url.split('access_token=')[1],
'timestamp': timestamp,
'sign': sign
}
url_with_params = url.split('?')[0] + '?' + urllib.parse.urlencode(url_params)
message_json = json.dumps(message)
response = requests.post(url_with_params, data=message_json, headers={'Content-Type': 'application/json'})
print(response.text)
if response.status_code == 200:
print("Message sent successfully!")
else:
print("HTTP request failed with status code: ", response.status_code)
# 执行发送消息函数
send_message(args.message)
07-28
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交