免註冊公衆號的三種微信推送消息服務的C#代碼實現

有時候我們需要監控一些網絡上的變化,但是每次去刷新網頁卻又很麻煩,而且大部分刷新的時候網頁並沒有更新。那麼有沒有一個工具,可以監控網頁變化,並將變化的結果推送到手機微信上呢?

這裏有很多應用場景,比如前一段時間很火的工具來監控JD、TB等口罩是否有貨的狀態、還有就是刷票、搶課、監聽網頁便也變化、爬蟲等等。

我們可以在後臺寫一個監控程序,一旦口罩有貨了,就立馬推送消息到微信上。

有人會說這樣的方式,微信公衆號可以實現啊,那麼爲什麼要你介紹?

不不不,註冊微信公衆號後,還要閱讀官方的各種文檔,反覆調試,才能順利實現這樣的服務。

現在下面介紹的推送服務,可以我們可以調用一個簡單的HTTP請求即可實現。

 

 

1. Server醬

介紹:

「Server醬」,英文名「ServerChan」,是一款「程序員」和「服務器」之間的通信軟件。

說人話?就是從服務器推報警和日誌到手機的工具。

開通並使用上它,只需要一分鐘:

  1. 登入:用GitHub賬號登入網站,就能獲得一個SCKEY(在「發送消息」頁面)
  2. 綁定:點擊「微信推送」,掃碼關注同時即可完成綁定
  3. 發消息:往 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. 即時達

介紹:

通過調用一個簡單的接口,將要推送的消息提交後,您將在微信收到推送的消息,簡單快捷
可以應用的場景服務器重啓,服務器異常信息推送,訂單推送等各種可想到的推送
無需任何註冊,只需要關注公衆號“即時達推送”,即可及時收到推送的消息

使用方法:

  1. 先關注公衆號“即時達推送”
  2. 請使用chrome瀏覽器訪問http://push.ijingniu.cn
  3. 無需註冊,直接微信掃碼登入
  4. 創建消息通道,獲得該通道的訂閱二維碼和通道Key
  5. 讓你的用戶掃碼該通道的訂閱二維碼訂閱該通道
  6. 調用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. 總結

感謝以上三種方法的原創作者,把原本複雜的微信推送服務變得非常簡單。

具體哪一個好,需要看自己的需要來應用到自己的項目中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章