python代碼:利用幾十行python書寫微信機(jī)器人
1.使用環(huán)境
系統(tǒng):window10
IDE:spyder
主要程序包:itchat(直接在doc中 命令:pip install itchat)
2.源程序
import requests
import itchat
#可以自己向圖靈機(jī)器人申請,這里我已經(jīng)提供
KEY = ‘2c242b43e94a4e0ca984629828d4e164’
def get_response(msg):
# 構(gòu)造了要發(fā)送給服務(wù)器的數(shù)據(jù)
# 使用圖靈機(jī)器人提供的接口
apiUrl = ‘http://www.tuling123.com/openapi/api’
#一個(gè)發(fā)動(dòng)的api的數(shù)據(jù)
data = {
‘key’ : KEY,
‘info’ : msg,
‘userid’ : ‘wechat-robot’,
}
try:
#使用post方法去請求
r = requests.post(apiUrl, data=data).json()
# 字典的get方法在字典沒有‘text’值的時(shí)候會(huì)返回None而不會(huì)拋出異常
return r.get(‘text’)
# 為了防止服務(wù)器沒有正常響應(yīng)導(dǎo)致程序異常退出,這里用try-except捕獲了異常
# 如果服務(wù)器沒能正常交互(返回非json或無法連接),那么就會(huì)進(jìn)入下面的return
except:
# 將會(huì)返回一個(gè)None
return
# 使用裝飾器
@itchat.msg_register(itchat.content.TEXT)
#獲取圖靈機(jī)器人返回的數(shù)據(jù)
#處理圖靈機(jī)器人出現(xiàn)異常的時(shí)候
def tuling_reply(msg):
# 為了保證在圖靈Key出現(xiàn)問題的時(shí)候仍舊可以回復(fù),這里設(shè)置一個(gè)默認(rèn)回復(fù)
defaultReply = ‘I received: ’ + msg[‘Text’]
# 如果圖靈Key出現(xiàn)問題,那么reply將會(huì)是None
reply = get_response(msg[‘Text’])
# a or b的意思是,如果a有內(nèi)容,那么返回a,否則返回b
# 有內(nèi)容一般就是指非空或者非None,你可以用`if a: print(‘True’)`來測試
return reply or defaultReply
# 為了讓實(shí)驗(yàn)過程更加方便(修改程序不用多次掃碼),我們使用熱啟動(dòng)
itchat.auto_login(hotReload=True)
itchat.run()
itchat.run()
3.程序運(yùn)行結(jié)果
由于本程序主要是在手機(jī)上使用微信進(jìn)行操作,這里對程序運(yùn)行后進(jìn)行簡要描述:在運(yùn)行本程序后,系統(tǒng)會(huì)自動(dòng)生成一個(gè)二維碼供要使用微信機(jī)器人使用,掃描后即可使用。