【溫馨提示】 本文共1678字,3張圖。預計閱讀時間需要5分鍾。
有時候我們需要監控一些網絡上的變化,但是每次去刷新網頁卻又很麻煩,而且大部分刷新的時候網頁並沒有更新。那么有沒有一個工具,可以監控網頁變化,並將變化的結果推送到手機微信上呢?
這里有很多應用場景,比如前一段時間很火的工具來監控JD、TB等口罩是否有貨的狀態、還有就是刷票、搶課、監聽網頁便也變化、爬蟲等等。
我們可以在后台寫一個監控程序,一旦口罩有貨了,就立馬推送消息到微信上。
有人會說這樣的方式,微信公眾號可以實現啊,那么為什么要你介紹?
不不不,注冊微信公眾號后,還要閱讀官方的各種文檔,反復調試,才能順利實現這樣的服務。
現在下面介紹的推送服務,可以我們可以調用一個簡單的HTTP請求即可實現。
1. Server醬
介紹:
「Server醬」,英文名「ServerChan」,是一款「程序員」和「服務器」之間的通信軟件。
說人話?就是從服務器推報警和日志到手機的工具。
開通並使用上它,只需要一分鍾:
- 登入:用GitHub賬號登入網站,就能獲得一個SCKEY(在「發送消息」頁面)
- 綁定:點擊「微信推送」,掃碼關注同時即可完成綁定
- 發消息:往 http://sc.ftqq.com/SCKEY.send 發GET請求,就可以在微信里收到消息啦
用法:
Server醬使用方法非常簡單,向url發送一個Get/Post請求即可。
https://sc.ftqq.com/[SCKEY(登入后可見)].send
接受兩個參數:
- text:消息標題,最長為256,必填。
- desp:消息內容,最長64Kb,可空,支持MarkDown。
最簡單的消息發送方式是通過瀏覽器,在地址欄輸入以下URL,回車后即可發送:
https://sc.ftqq.com/[SCKEY(登入后可見)].send?text=主人服務器又掛掉啦~
缺點:
發送后的消息內容不可以預覽,需要點擊進去才可以看見。作者說是收到很多人投訴,我也想不通,到底是哪些SB們投訴的。
MMP!
C#使用方法:
//Server醬 var response = await httpClient.GetAsync("https://sc.ftqq.com/YourKey.send" + "?text=" + "測試標題" + DateTime.Now + "&desp=" + "測試內容" + DateTime.Now); string res = await response.Content.ReadAsStringAsync(); Console.WriteLine("Server醬發送狀態:" + response.StatusCode); Console.WriteLine(res);
2. WxPusher
介紹:
微信消息推送服務(公眾號:WxPusher)是通過API給個人微信發送消息的即時推送服務。
可能你有爬蟲,刷票,搶課等服務,當他們的狀態發生變更的時候,你可以通過簡單的HTTP請求,通過WxPusher,把這些信息實時的推送到你的個人微信上。
WxPusher是免費且沒有限制的,但是請注意不要推送敏感詞!
用法:
1、關注微信公眾號:開發者服務(wxpusher)
2、點擊「我的ID」,獲取到你的專屬推送ID,使用這個ID給你自己發消息。
一個微信用戶唯一對應一個ID,並且是不會變的,擁有這個ID就可以給對應的微信號發送消息,請注意不要泄漏。
3、通過HTTP接口,發送消息給微信。
缺點:
關注公眾號后,還需要關注一下自己的應用二維碼才可以,第一次接入稍微有點麻煩。但是API提供了豐富的服務,仔細閱讀一般都可以調試通過。
官方的API說明有點混亂,首頁說Post方法即將廢棄,而在SDK頁面卻又推薦使用Post,說Get是閹割版。
C#代碼:
//WxPusher //Post var json = new WxPusherModel { appToken = "AT_xxxxxxxxxxxxx", content = "測試WxPusher Post" + DateTime.Now, contentType = 1, topicIds = new int[] { 150 }, uids = new string[] { "UID_xxxx" }, }; string temp = JsonConvert.SerializeObject(json); HttpContent content = new StringContent(temp, Encoding.UTF8, "application/json"); var response2 = await httpClient.PostAsync("http://wxpusher.zjiecode.com/api/send/message", content); string res2 = await response2.Content.ReadAsStringAsync(); Console.WriteLine("WxPusher Post發送狀態:" + response2.StatusCode); Console.WriteLine(res2); //Get string url = "http://wxpusher.zjiecode.com/api/send/message/?appToken=AT_xxxxx&uid=UID_xxxxx&content=" + HttpUtility.UrlEncode("測試WxPusher Get"); var response3 = await httpClient.GetAsync(url); string res3 = await response3.Content.ReadAsStringAsync(); Console.WriteLine("WxPusher Get發送狀態:" + response3.StatusCode); Console.WriteLine(res3);
3. 即時達
介紹:
通過調用一個簡單的接口,將要推送的消息提交后,您將在微信收到推送的消息,簡單快捷
可以應用的場景服務器重啟,服務器異常信息推送,訂單推送等各種可想到的推送
無需任何注冊,只需要關注公眾號“即時達推送”,即可及時收到推送的消息
使用方法:
- 先關注公眾號“即時達推送”
- 請使用chrome瀏覽器訪問http://push.ijingniu.cn
- 無需注冊,直接微信掃碼登入
- 創建消息通道,獲得該通道的訂閱二維碼和通道Key
- 讓你的用戶掃碼該通道的訂閱二維碼訂閱該通道
- 調用API使用通道Key向該通道推送消息
同樣支持Get/Post方法。
Get
http://push.ijingniu.cn/send?key=channelkey&head=msgHead&body=msgBody 說明:如遇到亂碼請自行給相關參數編碼,如果body太長請用POST方式
Post
http://push.ijingniu.cn/send post參數: key=channelKey&head=msgHead&body=msgBody
C#代碼:
//即時達 //Post var nvc = new List<KeyValuePair<string, string>>(); nvc.Add(new KeyValuePair<string, string>("key", "xxxxx")); nvc.Add(new KeyValuePair<string, string>("head", "測試即時達 Post")); nvc.Add(new KeyValuePair<string, string>("body", "測試即時達 Post " + DateTime.Now)); var client = new HttpClient(); var request4 = new HttpRequestMessage(HttpMethod.Post, "http://push.ijingniu.cn/send") { Content = new FormUrlEncodedContent(nvc) }; var res4 = await client.SendAsync(request4); Console.WriteLine("WxPusher Get發送狀態:" + res4.StatusCode); Console.WriteLine(await res4.Content.ReadAsStringAsync()); //Get string url2 = "http://push.ijingniu.cn/send?key=xxxxxx&head=" + HttpUtility.UrlEncode("測試即時達 Get") + "&body=" + HttpUtility.UrlEncode("測試即時達" + DateTime.Now); var response5 = await httpClient.GetAsync(url2); string res5 = await response5.Content.ReadAsStringAsync(); Console.WriteLine("WxPusher Get發送狀態:" + response5.StatusCode); Console.WriteLine(res5);
o,對了,別忘了加上引用。
using System.Net.Http;
還有實例化一個client
var httpClient = new HttpClient();
4. 總結
感謝以上三種方法的原創作者,把原本復雜的微信推送服務變得非常簡單。
具體哪一個好,需要看自己的需要來應用到自己的項目中。