有了 itchat, python 調用微信個人號從未如此簡單(新增 py3 支持)


itchat 是一個開源的微信個人號接口。

近期完成了 py3 與文檔的完善,歡迎各位使用與測試。

使用不到三十行的代碼,你就可以完成一個能夠處理所有信息的微信機器人。

當然,該 api 的使用遠不止一個機器人,更多的功能等着你來發現。

如今微信已經成為了個人社交的很大一部分,希望這個項目能夠幫助你擴展你的個人的微信號、方便自己的生活。

Installation

可以通過本命令安裝 itchat :

pip install itchat 

Simple uses

有了 itchat ,如果你想要回復發給自己的文本消息,只需要這樣:

import itchat @itcaht.msg_register(itchat.content.TEXT) def text_reply(msg): itchat.send(msg['Text'], msg['FromUserName']) itchat.auto_login() itchat.run() 

一些進階應用可以在 Advanced uses 中看到,或者你也可以閱覽文檔

Have a try

這是一個基於這一項目的開源小機器人,百聞不如一見,有興趣可以嘗試一下。

QRCode

Advanced uses

各類型消息的注冊

通過如下代碼,微信已經可以就日常的各種信息進行獲取與回復。

#coding=utf8 import itchat, time from itchat.content import * @itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING]) def text_reply(msg): itchat.send('%s: %s' % (msg['Type'], msg['Text']), msg['FromUserName']) @itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO]) def download_files(msg): msg['Text'](msg['FileName']) return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName']) @itchat.msg_register(FRIENDS) def add_friend(msg): itchat.add_friend(**msg['Text']) # 該操作會自動將新好友的消息錄入,不需要重載通訊錄 itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName']) @itchat.msg_register(TEXT, isGroupChat=True) def text_reply(msg): if msg['isAt']: itchat.send(u'@%s\u2005I received: %s' % (msg['ActualNickName'], msg['Content']), msg['FromUserName']) itchat.auto_login(True) itchat.run() 

命令行二維碼

通過以下命令可以在登陸的時候使用命令行顯示二維碼:

itchat.auto_login(enableCmdQR=True) 

部分系統可能字幅寬度有出入,可以通過將 enableCmdQR 賦值為特定的倍數進行調整:

# 如部分的 linux 系統,塊字符的寬度為一個字符(正常應為兩字符),故賦值為 2 itchat.auto_login(enableCmdQR=2) 

默認控制台背景色為暗色(黑色),若背景色為淺色(白色),可以將 enableCmdQR 賦值為負值:

itchat.auto_login(enableCmdQR=-1) 

退出程序后暫存登陸狀態

通過如下命令登陸,即使程序關閉,一定時間內重新開啟也可以不用重新掃碼。

itchat.auto_login(hotReload=True) 

用戶搜索

使用get_friends方法可以搜索用戶,有四種搜索方式:

  1. 僅獲取自己的用戶信息
  2. 獲取特定UserName的用戶信息
  3. 獲取備注、微信號、昵稱中的任何一項等於name鍵值的用戶
  4. 獲取備注、微信號、昵稱分別等於相應鍵值的用戶

其中三、四項可以一同使用,下面是示例程序:

# 獲取自己的用戶信息,返回自己的屬性字典 itchat.get_friends() # 獲取特定 UserName 的用戶信息 itchat.get_friends(userName='@abcdefg1234567') # 獲取任何一項等於 name 鍵值的用戶 itchat.get_friends(name='littlecodersh') # 獲取分別對應相應鍵值的用戶 itchat.get_friends(wechatAccount='littlecodersh') # 三、四項功能可以一同使用 itchat.get_friends(name='LittleCoder 機器人', wechatAccount='littlecodersh') 

附件的下載與發送

itchat 的附件下載方法存儲在 msg 的 Text 鍵中。

發送的文件的文件名(圖片給出的默認文件名)都存儲在 msg 的 FileName 鍵中。

下載方法接受一個可用的位置參數(包括文件名),並將文件相應的存儲。

@itchat.msg_register(['Picture', 'Recording', 'Attachment', 'Video']) def download_files(msg): msg['Text'](msg['FileName']) itchat.send('@%s@%s'%('img' if msg['Type'] == 'Picture' else 'fil', msg['FileName']), msg['FromUserName']) return '%s received'%msg['Type'] 

如果你不需要下載到本地,僅想要讀取二進制串進行進一步處理可以不傳入參數,方法將會返回圖片的二進制串。

@itchat.msg_register(['Picture', 'Recording', 'Attachment', 'Video']) def download_files(msg): with open(msg['FileName'], 'wb') as f: f.write(msg['Text']())


免責聲明!

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



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