#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@File    :wechat_own.py
@Doc     :
@Author  :coder name
@Date    :2021/11/19 9:12 
"""
import json
import os
import time
import logging
import urllib.request

tkapi = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
msgapi = "https://qyapi.weixin.qq.com/cgi-bin/message/send"
corpid = "ww6490a8de09b054d7"
corpsecret = "xxxxxcorpsecret "
agentid = "agentid "
tokentmp = "token.txt"
url = "%s?corpid=%s&corpsecret=%s" % (tkapi, corpid, corpsecret)
senduser = 'senduser '
msg = 'msg '
nowtime = int(time.time())


def gettoken():
    try:
        res = urllib.request.urlopen(url)
        if res.status == 200:
            jresult = json.loads(str(res.read(), encoding="utf-8"))
            errcode = jresult["errcode"]
            if errcode == 0:
                token = jresult["access_token"]
                token = token.strip("")
                token = token.strip("")
                log = "%s:%s" % (nowtime, token)
                with open(tokentmp, "w") as f:
                    f.write(log)
                return token
            else:
                logging.error("gettoken:" + str(res.status))
        else:
            logging.error("gettoken:" + str(res.status))
    except Exception as e:
        logging.error("gettoken:" + str(e))


def sendmsg(token, senduser, msg):
    """
    发送消息
    """
    SendMsgUrl = "%s?access_token=%s" % (msgapi, token)
    data = {"touser": senduser, "msgtype": "text", "agentid": agentid, "text": {"content": msg}}
    data = bytes( json.dumps(data).replace("-n", "\n"), "utf8")
    try:
        request = urllib.request.Request(SendMsgUrl)
        ret= urllib.request.urlopen(request, data)
        if ret.status == 200:
            errcode = json.loads(str(ret.read(), encoding="utf-8"))["errcode"]
            if errcode == 0:
                return ("0", errcode)
            else:
                return ("1", "send msg fail")
        else:
            return ("1", "send msg return http code error")
    except:
        return ("1", "send msg http request fail")


if __name__ == '__main__':

    # 开始
    stat, token = gettoken()
    if stat == "0":
        sendmsg(token, senduser, msg)
    else:
        print("get token fail errinfo:" )

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐