How does python (application) send notifications to WeChat with Python?

1. What are the notification methods?

Common notification methods are: email, phone, SMS, WeChat.
SMS and phone calls: usually chargeable and rarely used;
email: suitable for notification with file type, more formal, and used for archiving;
WeChat: suitable for alarm type notification, more convenient. The WeChat mentioned here is enterprise WeChat.

The purpose of this article is to send messages to corporate members through the corporate WeChat application.

2. How to realize enterprise WeChat notification?

1. Create a new application
Log in to the web version of Enterprise WeChat (https://work.weixin.qq.com), click Application Management → Application → Create Application
insert image description here
to upload the logo of the application, enter the application name (new bond), and then select the visible range, Successfully created an alarm application
insert image description here
2. Obtain the Secret and
use Python to send an alarm request. In fact, only two interfaces are used:

Get Token : https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}

Send request : https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}

As you can see, the most important are the corpid and secret:

Corpid : Uniquely identifies your business

secret : The application-level key, with which the program knows which application of the enterprise you want to send

Corpid can be obtained through My Company → Company Information → Company ID.
insert image description here
You can obtain the secret by clicking on the newly created application (new bond) → View secret → Send.
insert image description here
insert image description here
Finally, fill in the corpid and secret into the following constants.

3. Code implementation

import json
import time
import requests
'''
本文件主要实现通过企业微信应用给企业成员发消息
'''

CORP_ID = "xxxx"
SECRET = "xxxx"

class WeChatPub:
    s = requests.session()

    def __init__(self):
        self.token = self.get_token()

    def get_token(self):
        url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={
      
      CORP_ID}&corpsecret={
      
      SECRET}"
        rep = self.s.get(url)
        if rep.status_code != 200:
            print("request failed.")
            return
        return json.loads(rep.content)['access_token']

    def send_msg(self, content):
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
        header = {
    
    
            "Content-Type": "application/json"
        }
        form_data = {
    
    
            "touser": "FengXianMei",#接收人
            "toparty": "1",#接收部门
            "totag": " TagID1 | TagID2 ",#通讯录标签id
            "msgtype": "textcard",
            "agentid": 1000002,#应用ID
            "textcard": {
    
    
                "title": "债券打新提醒",
                "description": content,
                "url": "URL",
                "btntxt": "更多"
            },
            "safe": 0
        }
        rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header)
        if rep.status_code != 200:
            print("request failed.")
            return
        return json.loads(rep.content)

if __name__ == "__main__":
    wechat = WeChatPub()
    timenow = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    wechat.send_msg(f"<div class=\"gray\">{
      
      timenow}</div> <div class=\"normal\">注意!</div><div class=\"highlight\">今日有新债,坚持打新!</div>")
    print('消息已发送!')

4. Achieve the effect:
insert image description here
insert image description here
insert image description here

3. Matters needing attention

4. References

How to send alert notifications to WeChat with Python?
Send a message to the WeChat public account with python

Guess you like

Origin blog.csdn.net/shammy_feng/article/details/123711347