摘要:利用微信個人號接口只要是個微信號就能擔當發送日志警報的重任,不僅可以發送到個人同時還能發送到群組。是基于和實現的一個可以將你的網站爬蟲腳本等其他應用中各種消息日志報警運行結果等發送到微信的工具。
前言
筆者所在公司項目的報警信息會通過釘釘發送到群組或個人,這樣如果服務出現了問題我們都會第一時間收到提醒并進行處理。
某日從釘釘收到報警信息的我突發奇想,如果自己的項目也能在出現問題的第一時間通過社交工具通知我豈不美 ( sang ) 滋 ( xin )滋( bing ) ( kuang )。
通過微信公眾平臺進行報警很容易,申請公眾平臺后寫個報警后臺或者使用企業微信進行接口信息發送。但不管是公眾平臺還是企業微信對于普通用戶的入口太深,而且個人申請還需要提交資料等等一系列事情,顯然不是我想要的結果。
之前 web 版微信的協議已經有大神解析過并封裝了工具,之后又有優秀的作者不斷完善封裝了更好用的微信個人號接口。
利用微信個人號接口只要是個微信號就能擔當發送日志警報的重任,不僅可以發送到個人同時還能發送到群組。
但是所有微信機器人都是自己主動運行,注冊會話,沒有辦法接收外部程序的日志或報警,因此我就依托 wxpy 寫了 wechat_sender。
wechat_senderwechat_sender 是基于 wxpy 和 tornado 實現的一個可以將你的網站、爬蟲、腳本等其他應用中各種消息 (日志、報警、運行結果等) 發送到微信的工具。
使用 wechat_sender 很簡單,只需要有個人微信號,然后用個人微信號啟動 wechat_sender 服務。
pip install wechat_sender
登錄微信并啟動 wechat_sender 服務.
from wxpy import * from wechat_sender import * bot = Bot() # 這里會掃碼登錄,如果在服務器中請使用 console_qr 參數 listen(bot) # 之后 wechat_sender 將持續運行等待接收外部消息
在另一個腳本中向微信發送消息.
from wechat_sender import Sender Sender().send("Hello From Wechat Sender") # Hello From Wechat Sender 這條消息將通過 1 中登錄微信的文件助手發送給你
當然,wechat_sender 支持 添加 logging handler 的方式直接繼承進已有的項目中,例如我的個人的網站、爬蟲腳本等,不必修改以前的代碼,只需要在 logger 中增加一個 wechat_sender 的 loghandler 就可以把相關日志直接發送到微信中。
舉個栗子:
# spider.py # 假如在一個爬蟲腳本,我們想讓此腳本的警告信息直接發到微信 # 記得要先用 listen 運行 wechat_sender 服務 import logging from wechat_sender import LoggingSenderHandler logger = logging.getLogger(__name__) # spider code here def test_spider(): ... logger.exception("EXCEPTION: XXX") def init_logger(): sender_logger = LoggingSenderHandler("spider", level=logging.EXCEPTION) logger.addHandler(sender_logger) if __name__ == "__main__": init_logger() test_spider()
最后類似效果是這樣滴:
當然,wechat_sender 不僅可以用來發送日志和警報,你也可以把他當做日程、會議提醒的利器。
wechat_sender 提供了周期消息和延時消息的功能:
# coding: utf-8 import datetime from wechat_sender import Sender sender = Sender() time = datetime.datetime.now()+datetime.timedelta(hours=1) sender.delay_send(content="測試內容", time=time, title="測試標題", remind=datetime.timedelta(minutes=59))
如果返回正常,1 分鐘后你將收到這條消息時間是 1 小時后的消息提醒:
#標題:測試標題 #時間:2017-06-07 12:56:16 #內容:延遲消息測試其他玩法
作為一只猿,頸椎神馬的需要保護好,公司提供了理療服務,但無奈名額有限,每次預約都很困難,所以我決定寫個監控腳本,當有預約名額時通過微信將可預約地址發給我。
寫好監控腳本,然后部署到服務器 celery 周期任務中,每隔 1 分鐘進行一次查詢,同時在服務器上啟動 wechat_sender 服務。
晚上打完球看手機收到了 阿綠( wechat_sender ) 發來的消息,果斷去預約一發。
更多可能掃描二維碼,驗證信息輸入 "wechat_sender" 或 "加群" 進入微信交流群嘗試更多玩法
項目主頁:https://github.com/bluedazzle...
詳細文檔:http://wechat-sender.readthed...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44419.html
摘要:學習筆記七數學形態學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現代方法基于區域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
摘要:由此觀之,實現桑基圖的核心在于計算出以上的這些點坐標。減少邊交叉當數據量到一定程度的時候,桑基圖中的邊會出現重疊現象,造成一定的視覺混亂。綜上,桑基圖是一個展現數據流非常好用的視圖,感興趣的同學可以自己實現一個試試。 原文地址:https://geekplux.com/2018/08/28/how-to-implement-sankey-diagram.html 什么是桑基圖 sho...
摘要:本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。 前言 這篇文章適合所有的想微信小程序開發新手、老鳥以及想準備學習開發微信小程序的程序猿。本文以開發一個類似語音口令紅包小程序為例,向您講解如何使用阿里云函數計算快速構建微信小程序的服務端。通過本文,您將會了解以下內容: demo概覽 傳統服務器架構 VS Serverless架構 S...
閱讀 1072·2021-11-25 09:43
閱讀 696·2021-11-22 14:45
閱讀 3816·2021-09-30 09:48
閱讀 1061·2021-08-31 09:41
閱讀 1970·2019-08-30 13:52
閱讀 1976·2019-08-30 11:24
閱讀 1341·2019-08-30 11:07
閱讀 950·2019-08-29 12:15