本文實例講述了python實現給微信公眾號發送消息的方法。分享給大家供大家參考,具體如下:
現在通過發微信公眾號信息來做消息通知和告警已經很普遍了。最常見的就是運維通過zabbix調用shell腳本給微信發消息,起到告警的作用。當要發送的信息較多,而且希望按照指定格式顯示的好看一點的時候,shell處理起來,個人感覺不太方便。于是我用Python重寫了發微信的功能。
#coding:utf-8import urllib2import jsonimport sysdef getMsg(): #為了避免發送中文消息報錯,使用utf8方式編碼 reload(sys) sys.setdefaultencoding('utf8') #這個方法生成想要發送的消息 msg = '''要發送的消息1要發送的消息2要發送的消息3...''' return msgif __name__ == '__main__': #微信公眾號上應用的CropID和Secret CropID='xxxxxxxxxxxxxxxxxx' Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #獲取access_token GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s" % (CropID,Secret) result=urllib2.urlopen(urllib2.Request(GURL)).read() dict_result = json.loads(result) Gtoken=dict_result['access_token'] #生成通過post請求發送消息的url PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Gtoken #企業號中的應用id AppID=1 #部門成員id,微信接收者 UserID=1 #部門id,定義可接收消息的成員范圍 PartyID=1 #生成post請求信息 post_data = {} msg_content = {} msg_content['content'] = getMsg() post_data['touser'] = UserID post_data['toparty'] = PartyID post_data['msgtype'] = 'text' post_data['agentid'] = AppID post_data['text'] = msg_content post_data['safe'] = '0' #由于字典格式不能被識別,需要轉換成json然后在作post請求 #注:如果要發送的消息內容有中文的話,第三個參數一定要設為False json_post_data = json.dumps(post_data,False,False) #通過urllib2.urlopen()方法發送post請求 request_post = urllib2.urlopen(PURL, json_post_data) #read()方法查看請求的返回結果 print request_post.read()注意:
2017年6月初開始,微信企業公眾號遷移到企業微信,發送消息有一些調整,請參考前文《[企業公眾號]升級到[企業微信]之后發送消息失敗的解決方法》
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》及《Python入門與進階經典教程》。
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答
圖片精選