2022年 11月 5日

基于Python的消息推送(钉钉、微信、QQ)

文章目录

  • 前言
  • 一、钉钉机器人
    • 1. 新建群聊
    • 2. 添加机器人
    • 3. 设置机器人
    • 4. 程序编写
  • 二、Server酱(微信)
    • 1. 注册登录
    • 2. 获取设置
    • 3. 程序编写
  • 二、Qmsg酱(QQ)
    • 1. 注册登录
    • 2. 获取设置
    • 3. 程序编写
  • 总结

前言

本文章重点在于可行性,若文中有未提及内容请查阅相关官方文档,Python版本为3.6.8


一、钉钉机器人

1. 新建群聊

只要权限能够在群里添加机器人即可,这里以考试群为例
在这里插入图片描述

2. 添加机器人

群设置 -> 智能群助手 -> 添加机器人 -> 选择自定义机器人
在这里插入图片描述

3. 设置机器人

安全设置选择加签即可 记下加签后内容栏中的值(拖动复制) 以及 设置完成获得的webhook值
在这里插入图片描述
在这里插入图片描述

4. 程序编写

dingding_text -> 所需发送的消息
webhook   -> webhook地址
secret    -> 加签值
参数添加完直接运行即可 更多消息形式及功能详见 钉钉机器人官方文档

# 钉钉推送
import json
import time
import requests
import hmac
import hashlib
import base64
import urllib.parse

dingding_text = 'This is a new message from DingDing Robot'

webhook = 'This should be your WebHook address'
secret = 'This should be your secret key'

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))
url = '%s&timestamp=%s&sign=%s' % (webhook, timestamp, sign)

headers = {'Content-Type': 'application/json'}
data = {
    "msgtype": "text",
    'text': {
        'content': f'{dingding_text}\n'
    }
}
res = requests.post(url, data=json.dumps(data), headers=headers)

if res.json()['errmsg'] == 'ok':
    print("message send success")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

二、Server酱(微信)

1. 注册登录

进入 Server酱官网 扫码登录 关注公众号 完成注册
在这里插入图片描述

2. 获取设置

在这里插入图片描述

3. 程序编写

# Server酱推送
import json
import requests

text_title = 'This is a new message from Server酱'
text_content = 'This is a new content from Server酱'

sendKey = 'This should be your SendKey'

url = f"https://sctapi.ftqq.com/{sendKey}.send"
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
data = {
    'text': f"{text_title}",
    'content': f"{text_content }"
}

response = requests.post(url, data=data)

if json.loads(response.text)["data"]['error'] == 'SUCCESS':
    print("Server酱 消息推送成功")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

二、Qmsg酱(QQ)

1. 注册登录

进入 Qmsg酱官网 点击立即使用 扫码登录
在这里插入图片描述

2. 获取设置

选择机器人添加好友 记下QMSG Key
在这里插入图片描述

在这里插入图片描述

3. 程序编写

# Qmsg酱推送
import json
import requests

qmsg_text = 'This is a new message from Qmsg酱'

qmsgKey = 'This should be your SendKey'

url = f"https://qmsg.zendee.cn/send/{qmsgKey}"
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
data = {
    'msg': f"{qmsg_text}"
}

response = requests.post(url, data=data)

if json.loads(response.text)['success'] == True:
    print("Qmsg酱 消息推送成功")



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

总结

现在我们就可以通过这三种方式进行不同渠道的消息通知