Python版本:使用微信API发送微信消息
本文代码借用朋友编写的成品代码,使用Python3编写,配合上一篇文章:《脱离微信客户端发送微信消息(一)》经过试验完全可以发送微信消息。
文件:BaseData.py
Python3代码:
1 # -*- coding: utf-8 -*- 2 3 corpid="XXXXXXX" # 设置-权限设置-部门-查看CorpID 4 corpsecret="YYYYYYYYYY" # 设置-权限设置-部门-查看Secret 5 Get_Token_Url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret 6 Send_Message = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="
文件:weixin.py
Python3 代码:
1 # -*- coding: utf-8 -*- 2 import json 3 4 import requests 5 6 from BaseData import * 7 8 9 class Token(object): 10 def __init__(self, Get_Token_Url): 11 """ 12 初始化 13 :param Get_Token_Url:获取token的地址,来自BaseData中 14 :return: 15 """ 16 self.url = Get_Token_Url 17 print (self.url) 18 19 def get_token(self): 20 """ 21 请求获取token的url,截取token并返回 22 :return:返回token值 23 """ 24 try: 25 ret = requests.get(self.url).text 26 return eval(ret)[‘access_token‘] 27 except Exception as e: 28 print (e) 29 30 31 class Message: 32 def __init__(self, content, msgtype=‘text‘, agentid=1, touser=‘@all‘): 33 """ 34 初始化发送信息的参数 35 :param content: 消息内容 36 :param msgtype: 消息类型,此时固定为:text 37 :param agentid: 应用的id,整型 38 :param touser: 成员ID列表(消息接收者,多个接收者用‘|’分隔)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 39 :return: 40 """ 41 self.content = content 42 self.msgtype = msgtype 43 self.agentid = agentid 44 self.touser = touser 45 self.token = Token(Get_Token_Url).get_token() 46 self.param = { 47 ‘touser‘: self.touser, 48 ‘msgtype‘: self.msgtype, 49 ‘agentid‘: self.agentid, 50 ‘text‘: {"content": self.content} 51 } 52 53 def send_msg(self): 54 """ 55 发送信息的方法 56 :return: 57 """ 58 url = Send_Message + self.token 59 try: 60 print (‘There is Try:‘,url) 61 print ("bodydata:"+json.dumps(self.param, ensure_ascii=False)) 62 r = requests.post(url, json.dumps(self.param, ensure_ascii=False)) 63 print("response:",r.content) 64 except Exception as e: 65 print (e) 66 67 68 if __name__ == ‘__main__‘: 69 touser1 = "具体用户名" #该用户所在的组必须在这个应用的允许使用范围内 70 content = ‘There is Weixin MSG by XX.org‘ #按理说应使用中文,但即使加了字母u,在发送请求的时候仍然会报错。 71 print ("There is content") 72 print (Message(content, touser=touser1).send_msg())