脱离微信客户端发送微信消息(二)

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())

 

posted @ 2017-03-13 11:19  kuzaman  阅读(788)  评论(0编辑  收藏  举报