Python - 推送企业微信消息

单接口报错直接推送给企业微信相关人员

企业微信官方文档:https://work.weixin.qq.com/api/doc/90000/90003/90487

一、创建应用

  1. 登录https://work.weixin.qq.com/wework_admin/frame#apps
  2. 应用管理 - 应用 - 自建 - 创建应用 - 一定要将想接收到消息的用户拉进可见范围内Python - 推送企业微信消息_第1张图片
  3.  例如创建了一个 接口自动化通知 应用Python - 推送企业微信消息_第2张图片

二、变量定义

登录 https://work.weixin.qq.com/wework_admin/frame#apps
企业id:我的企业 - 企业信息 - 企业ID

CORPID = " "

Python - 推送企业微信消息_第3张图片
以下两个内容均为新创建的应用详情页均有
# Secret
Secret = " "Python - 推送企业微信消息_第4张图片
# 创建的应用id
AgentId = '1000004'Python - 推送企业微信消息_第5张图片
# 用户信息里的账号多个时使用|相隔:通讯录 - 点击某位成员姓名进入详情页,账号值为这个字段值
TOUSER = "A|B|C"
TOUSER = "1761026XXX"Python - 推送企业微信消息_第6张图片

三、获取token

    def _get_access_token(self):
        url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
        values = {'corpid': self.CORPID,'corpsecret': self.Secret}
        request = requests.get(url, params=values, verify=False)
        return request

    def get_access_token(self):
        get_req = self._get_access_token()
        if get_req.status_code != 200:
            print('连接服务器失败')
        else:
            get_req_json = get_req.json()
        if get_req_json['errcode'] != 0:
            print('响应结果不正确')
        else:
            access_token = get_req_json['access_token']
        return access_token

四、推送消息

很明显,mssage是你想通知给成员的信息

    def send_data(self, message):
        send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token()
        send_values = {
        "touser": self.TOUSER,
        "msgtype": "text",
        "agentid": self.AgentId,
        "text": {
        "content": message
        },
        "safe": "0"
        }

        send_msges = (bytes(json.dumps(send_values), 'utf-8'))
        respone = requests.post(send_url, send_msges, verify=False)
        respone = respone.json()
        return respone["errmsg"]

五、完整代码

想用时直接实例化给message传值即可

import requests
import json
import sys
import importlib
importlib.reload(sys)
requests.packages.urllib3.disable_warnings()
from Tools.read_config import ReadConfig

class WeChat:
    CORPID = ''
    Secret = ''
    AgentId = ''
    TOUSER = ''

    def _get_access_token(self):
        url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
        values = {'corpid': self.CORPID,'corpsecret': self.Secret}
        request = requests.get(url, params=values, verify=False)
        return request

    def get_access_token(self):
        get_req = self._get_access_token()
        if get_req.status_code != 200:
            print('连接服务器失败')
        else:
            get_req_json = json.loads(get_req.text)
        if get_req_json['errcode'] != 0:
            print('响应结果不正确')
        else:
            access_token = get_req_json['access_token']
        return access_token

    def send_data(self, message):
        send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token()
        send_values = {
        "touser": self.TOUSER,
        "msgtype": "text",
        "agentid": self.AgentId,
        "text": {
        "content": message
        },
        "safe": "0"
        }

        send_msges = (bytes(json.dumps(send_values), 'utf-8'))
        respone = requests.post(send_url, send_msges, verify=False)
        respone = respone.json()
        return respone["errmsg"]

if __name__ == "__main__":
    wx = WeChat()
    wx.send_data("您有新的测试未处理,请登入http://www.xxx.com系统查看。")

 

你可能感兴趣的:(Python接口自动化,python)