Python數據推送到微信企業號

我的註冊企業微信號

requests的使用

企業微信的參數

  • Corpid:表示企業ID,能夠在企業微信->個人企業->企業ID;
  • Secret:應用的Secret,在應用與小程序->建立的應用程序->Secret;
  • PartyID:通信錄部門ID,通信錄->部門->部門ID;
  • Agentid:應用ID,在應用與小程序->建立的應用程序->AgentId;

JSON 響應內容

  • Requests 中也有一個內置的 JSON 解碼器,用來處理 JSON 數據,如r.json(),若是 JSON 解碼失敗,r.json()就會拋出一個異常;
  • 須要注意的是,成功調用 r.json() 並不意味着響應的成功,有的服務器會在失敗的響應中包 含一個 JSON 對象(好比 HTTP 500 的錯誤細節),這種 JSON 會被解碼返回。要檢查請 求是否成功,請使用 r.raise_for_status() 或者檢查 r.status_code 是否和你的指望相同;

發送測試數據到企業微信

import requests
import sys
import json
def GetToken(Corpid,Secret):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
    Data = {
        "corpid":Corpid,
        "corpsecret":Secret
    }
    r = requests.get(url=Url,params=Data)
    Token = r.json()['access_token']
    return Token
def SendMessage(Token,Agentid,Subject,Content,):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
    Data = {
        "toparty": PartyID,
        "msgtype": "text",
        "agentid": Agentid,
        "text": {
            "content": Subject + '\n' + Content
        },
        "safe": "0"
    }
    ret = requests.post(url=Url,data=json.dumps(Data))
    return ret.text
if __name__ == '__main__':
    Subject = sys.argv[1]
    Content = sys.argv[2]
    # CorpID是企業ID
    Corpid = "ww5cfabaf35ce8cd7b"
    # 應用的Secret
    Secret = "uiwvmNj8f1IVy3QYrZ62WePGFKA_BsIPmHigq3TRydM"
    # 通信錄部門ID
    PartyID = "1"
    # 應用ID
    Agentid = "1000002"
    Token = GetToken(Corpid, Secret)
    status = SendMessage(Token, Agentid, Subject, Content)
    print(status)
  • 將企業微信封裝成接口,提供給外部調用
import requests
import json
class Wechat_Info:
    def __init__(self):
        self.partyID = '1'
        self.corpID = '企業ID'
        self.secret = '應用的secret'
        self.agentID = '1000002'
        self.token = None
    def __get_token(self, corpid, secret):
        Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
        Data = {
            "corpid": corpid,
            "corpsecret": secret
        }
        r = requests.get(url=Url, params=Data)
        token = r.json()['access_token']
        return token
    def send_message(self, message):
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}".format(
            self.__get_token(self.corpID, self.secret))
        data = {
            "toparty": self.partyID,
            "msgtype": "text",
            "agentid": self.agentID,
            "text": {
                "content": message
            },
            "safe": "0"
        }
        result = requests.post(url=url, data=json.dumps(data))
        return result.text
if __name__ == '__main__':
    wechat_info = Wechat_Info()
    result = wechat_info.send_message('微信測試')
    print(result)

參考:https://www.9xkd.com/user/plan-view.html?id=2632639503html

相關文章
相關標籤/搜索