python推送消息到钉钉python钉钉消息推送python钉钉机器人
- import json
- import hashlib
- import base64
- import hmac
- import os
- import time
- import requests
- from urllib.parse import quote_plus
-
-
- class Messenger:
- def __init__(self, token=os.getenv("DD_ACCESS_TOKEN"), secret=os.getenv("DD_SECRET")):
- self.timestamp = str(round(time.time() * 1000))
- self.URL = "https://oapi.dingtalk.com/robot/send"
- self.headers = {'Content-Type': 'application/json'}
- secret = secret
- secret_enc = secret.encode('utf-8')
- string_to_sign = '{}\n{}'.format(self.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()
- self.sign = quote_plus(base64.b64encode(hmac_code))
- self.params = {'access_token': token, "sign": self.sign}
-
- def send_text(self, content):
- """
- 发送文本
- @param content: str, 文本内容
- """
- data = {"msgtype": "text", "text": {"content": content}}
- self.params["timestamp"] = self.timestamp
- return requests.post(
- url=self.URL,
- data=json.dumps(data),
- params=self.params,
- headers=self.headers
- )
- if __name__ == "__main__":
- m = Messenger(
- token="19985c90103a1cb38f2c9e8fxxxxxxxxxxxxxxxx你的token",
- secret="SEC602a8ce2713cb077deb3xxxxxxxxxxxxxxxx你的secret"
- )
- # print(m.send_text("电费不足"))
- # print(m.send_text("电费剩余"))
推送文本2
- #发送文本
- from dingtalkchatbot.chatbot import DingtalkChatbot
- from datetime import datetime
- def dingtalk_robot(webhook,secret):
- dogBOSS = DingtalkChatbot(webhook, secret)
- url = 'http://kamo.fun'
- dogBOSS.send_text(
- msg=f'电费剩余',
- is_at_all=False)
- if __name__ == '__main__':
- webhook = 'https://oapi.dingtalk.com/robot/send?access_token=19985c90103a1cb38f2c9e8f0f3d9e475xx'
- secrets = 'SEC602a8ce2713cb077deb398d8543xx'
- dingtalk_robot(webhook=webhook,
- secret=secrets)
推送markdown
- #发送markdown格式
- from dingtalkchatbot.chatbot import DingtalkChatbot
- from datetime import datetime
- def dingtalk_robot(webhook,secret):
- dogBOSS = DingtalkChatbot(webhook, secret)
- red_msg = '级别:危险'
- orange_msg = '级别:警告'
-
- now_time = datetime.now().strftime('%Y.%m.%d %H:%M:%S')
- url = 'http://kamo.fun'
- dogBOSS.send_markdown(
- title=f'电费剩余',
- text=f'### **我是主内容的第一行**\n'
- f'**{red_msg}**\n\n'
- f'**{orange_msg}**\n\n'
- f'**发送时间:** {now_time}\n\n'
- f'**相关网址:**[点击跳转]({url}) \n',
- is_at_all=True)
-
- if __name__ == '__main__':
- webhook = 'https://oapi.dingtalk.com/robot/send?access_token=19985c90103a1cb38f2c9xxx'
- secrets = 'SEC602a8ce2713cb077deb398d85432bxxx'
- dingtalk_robot(webhook=webhook,
- secret=secrets)