1. 程式人生 > >使用python定時傳送訊息給微信好友

使用python定時傳送訊息給微信好友

    以前以為微信沒有介面和python連線,但是最近發現了個庫wechat_sender,然後就稍微學習了下。還不深入,寫了一個簡易的測試程式作為初步進入。

    需要用到的庫有 threading, wxpy前者需要用到Timer這個函式,作為定時器使用。後者wxpy用到Bot函式,載入登入微信的二維碼。所以需要安裝這兩個庫,使用pip或者pycharm的設定新增庫,都可以安裝。

    具體實施程式碼,如下:可以自行擴充程式碼內容,這只是實現了傳送的基本框架。

from threading import Timer
from wxpy import Bot

bot = Bot(cache_path='./微信登入二維碼.png')
'''
載入二維碼,登入進入。位置放在同目錄下就行。
'''


def send_news():
   try:
        Friend = bot.friends().search(u'朋友的暱稱')[0]
        '''
        這裡的暱稱,不是備註,不是微訊號,就是原本朋友的暱稱,下面的暱稱也是如此。
        '''
        Friend.send(get_txt())
        # send傳送的引數,是get_txt()的返回內容,就是要傳送的內容。
        # 每個人要傳送的不一樣,這個函式就自己單獨實現吧。很容易
        
        # Friend.send(u'晚安') # 這句話加的有點廢話,不過也是多發條訊息。
    
        t = Timer(20, send_news)
        '''
        這裡有坑,之前是這樣寫的Timer(20,send_news('txt')),這樣寫的結果就是錯
        第一次傳送沒問題,之後傳送的就出現了問題,說是找不到物件,碰一次就遇到了。    
        我這個send_news()函式沒有引數,如果你要加引數的話,如下這樣加:
        t = Timer(20, send_news, [引數])
        '''
        t.start() 
    except:
        Friend = bot.friends().search("自己的暱稱")[0]
        Friend.send(u'訊息傳送失敗')

if __name__ == '__main__':
    t = Timer(20, send_news)
    '''
    這裡也需要和send_news函式中的定時器一樣的寫法。
    最開始想使用while()迴圈,一直迴圈定時器,這樣根本是行不通的。
    '''
    t.start()