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