<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
現在通過發微信公眾號資訊來做訊息通知和告警已經很普遍了。最常見的就是運維通過zabbix呼叫shell指令碼給微信發訊息,起到告警的作用。當要傳送的資訊較多,而且希望按照指定格式顯示的好看一點的時候,shell處理起來,個人感覺不太方便。於是我用python重寫了發微信的功能。
#coding:utf-8 import urllib2 import json import sys def getMsg(): #為了避免傳送中文訊息報錯,使用utf8方式編碼 reload(sys) sys.setdefaultencoding('utf8') #這個方法生成想要傳送的訊息 msg = ''' 要傳送的訊息1 要傳送的訊息2 要傳送的訊息3 ... ''' return msg if __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()
追加:企業公眾號]升級到[企業微信]之後傳送訊息失敗
最近,看到訊息,說是微信把企業公眾號升級到企業微信。當時並沒有在意,但是後來發現之前用企業公眾號的介面來發通知訊息的程式發不出去訊息了。
於是,我又開啟升級訊息,仔細的讀了一下:企業號將遷移至企業微信管理後臺(work.weixin.qq.com/login)進行統一管理。之前企業公眾號的管理後臺地址是qy.weixin.qq.com,發不了訊息難道是介面地址也變了嗎。
登到新後臺看了下,發現應用的Secret值變了,相比之前位數要少一些。將程式碼中的Secret值替換成新的之後,發現還是不行。debug看了下,在用post請求呼叫介面發訊息的時候報錯:{“errcode”:-1,”errmsg”:”Invalid input”}。分析原因可能有兩個:呼叫的發訊息介面地址不對了;或者,傳的post引數的格式不對了。
還好,在其官網上找到了企業微信的API說明檔案:https://work.weixin.qq.com/api/doc ,上面有較詳細的使用說明。經確認,呼叫介面的url地址並沒有變(傳送訊息還是用https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN)。但是發現文字訊息的格式有點不一樣,官網範例如下:
{ "touser" : "UserID1|UserID2|UserID3", "toparty" : " PartyID1|PartyID2 ", "totag" : " TagID1 | TagID2 ", "msgtype" : "text", "agentid" : 1, "text" : { "content" : "你的快遞已到,請攜帶工卡前往郵件中心領取。n出發前可檢視<a href="http://work.weixin.qq.com">郵件中心視訊實況</a>,聰明避開排隊。" } }
上面的UserID、PartyID這些應該我之前都是當數值傳的,但範例上是放在引號裡面的,那就是被當做字串了。於是,我把程式碼也改成按字串的方式試了下,結果可以了。。。
總結
到此這篇關於如何利用python給微信公眾號發訊息的文章就介紹到這了,更多相關python給微信公眾號發訊息內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45