脫離微信客戶端發送微信消息(二)

Python版本:使用微信API發送微信消息html

  本文代碼借用朋友編寫的成品代碼,使用Python3編寫,配合上一篇文章:《脫離微信客戶端發送微信消息(一)》通過試驗徹底能夠發送微信消息。json

文件: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())
相關文章
相關標籤/搜索