1 行代碼,實現微信消息發送


還是接食行生鮮簽到的問題,之前我們講到,將簽到結果通過短信發送到手機,但是我發現 twilio 有些不穩定,為了防止漏簽,我在服務器上設置了兩次定時任務,通常情況下第一個收不到短信,第二個才會收到。

看到最近好多大神寫操作微信的文章,於是,我又想,是不是可以將消息發送到微信上?

微信發送消息有如下幾個思路:

  1. itchat 模塊
  2. 使用個人公眾號
  3. 使用其他公眾號封裝好的發送消息的功能;

itchat

大部分人操作個人微信都是使用這個模塊。

itchat 是一個開源的微信個人接口,它可以模擬網頁端的微信登陸,從而用 Python 腳本或命令行模式來使用個人微信號,達到推送各種通知到微信上的目的。

項目主頁:https://github.com/littlecodersh/ItChat

其實是基於網頁版微信,通過 HTTP 交互來實現微信的一些操作,被封的風險其實在於,當檢測到賬號異常時,賬號的網頁版登錄權限會被騰訊禁掉,這種情況下 itchat 就不好使了。另外,據說新申請的賬號直接沒有網頁版登錄權限了。

itchat 的使用已經有其他很多大神講了,網上也有很多教程,這里我們不再贅述,有興趣的自行 Google,也可以后台找我,一起來研究下~

一起來

個人公眾號接口

微信提供了豐富的公眾號接口,可以實現消息收發、關注用戶信息獲取等等。

BUT!大部分接口(包括發送消息接口)只開放給認證用戶,而個人號又無法認證,所以這條路斷了!

接口權限

微信認證

據說以前個人是可以認證的,反正權限的口子越來越小了。

可以先哭一會嗎

別人家的公眾號

正所謂「它山之石,可以攻玉」,此處不留爺,爺就去他處!今天的主角登場!

還好我們找到了提供收發消息功能的公眾號 API,我們只要集成他們的接口即可。

它就是「Server醬」!

Server 醬

Server 醬,英文名字 ServerChan,地址:http://sc.ftqq.com

使用方法:

  1. 登入:用 GitHub 賬號登入網站,就能獲得一個 SCKEY(在「發送消息」頁面);
  2. 綁定:點擊「微信推送」,掃碼關注同時即可完成綁定;
  3. 發消息:往 http://sc.ftqq.com/SCKEY.send 發 GET 請求,就可以在微信里收到消息啦;

來個示意圖:

Server 醬消息流程

代碼示例:

>>> import requests
>>> requests.get("https://sc.ftqq.com/your-SCKEY.send?text={}&desp={}".format('測試標題','哈哈'))

微信端效果:

ServerChan 通知

是不是很簡單!1 行代碼就搞定了微信消息推送,再也不用其他任何復雜的步驟!

另外,顯示發現發件人是Server醬,另外點進去有推廣,畢竟是免費的接口,還要啥自行車!

還有就是發送消息是有一些限制的:

每人每天發送上限 500 條,相同內容 5 分鍾內不能重復發送,不同內容一分鍾只能發送 30 條。主要是防止程序出錯的情況。

對於我這種需求肯定夠了。

PushBear

ServerChan 只能推送到一個微信上,若果想一對多發送信息,並且向自定義發件人,那么可以使用 PushBear。

PushBear 地址:https://pushbear.ftqq.com

  1. 無需注冊,直接掃碼登入;
  2. 創建消息通道,獲得訂閱二維碼;
  3. 通過 API 向關注了該二維碼的用戶推送消息;

PushBear 可以自定義發件人信息,通過微信登錄后,創建一個通道,會生成一個 sendkey 和一個訂閱二維碼, 可以通過「訂閱消息API」發送微信給所有掃描過此二維碼的人。

通道設置

代碼示例:

import requests
requests.get("https://pushbear.ftqq.com/sub?sendkey=your-sendkey&text={}&desp={}".format('pushbear', '哈哈'))

微信端效果:

PushBear 通知

發現發件人是我們自己設置的「不正經程序員」了!

使用限制:

推送消息存儲 72 小時、5 分鍾內不可發布重復消息、普通用戶每天 1000 條上限、請勿用於發送廣告和有害信息。

綜上,若要完成簽到成功后的通知,我們只要使用 ServerChan 或者 PushBear 的接口封裝成發送消息的函數即可!

食行生鮮簽到系列也可以到此結束了,回復【食行生鮮】可以獲取最終代碼。

總結

也許還有其他微信的使用方法,但是 ServerChan 是我找到的最簡單的一個了,1 行代碼搞定,簡單高效,很 pythonic

當然,作為個人發送一些通知 ServerChan 是綽綽有余的,但是,若是企業級的應用還是用自己的微信訂閱號來開發接口吧~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM