今天用到的是一個炒雞簡單的微信庫:itchat
itchat一個開源的微信個人號接口矗积,使用它能輕松的調(diào)用微信。使用不到三十行的代碼敞咧,你就可以完成一個能夠處理所有信息的微信機器人( ?° ?? ?°)
使用工具:圖靈123機器人棘捣,itchat ,requests休建,json
環(huán)境準(zhǔn)備
- 搭建python開發(fā)環(huán)境乍恐,這個網(wǎng)上已經(jīng)有很多教程的,也就不多贅述了
- 安裝外部包测砂,cmd下運行下面兩條命令
pip install itchat
pip install requests
- 注冊圖靈123機器人
http://www.turingapi.com/
源碼環(huán)節(jié)
好的茵烈,下面就是喜聞樂見的源碼環(huán)節(jié)了(′???)
import requests
import json
import itchat
# 連接圖靈api,返回機器人回復(fù)
def get_reply_from_tuling123(msg):
apiURL = "http://openapi.tuling123.com/openapi/api/v2"
data = {
"reqType": 0,
"perception": {
"inputText": {
"text": msg
}
},
"userInfo": {
#機器人設(shè)置中的apiKey,每個機器人的唯一識別碼
"apiKey": "xxx",
#機器人會以userId自稱砌些,比如:朕?呜投,別傻了不支持中文哦
"userId": "robot123"
}
}
# "apiKey": "48979f1ef681413e82addf309e929bd7"
# "userId": "robot123"
# 將data字典轉(zhuǎn)化為json形式,圖靈123V2后需要提交json數(shù)據(jù)類型
data_json = json.dumps(data)
# 使用requests發(fā)送post請求,并用r接受返回的json數(shù)據(jù)
r = requests.post(apiURL,data=data_json).json()
# 打印一下微信好友的內(nèi)容
print('msg:'+msg)
# 打印一下機器人的回復(fù)
print('robot_reply:'+r['results'][0]['values']['text'])
# 返回內(nèi)容
return r['results'][0]['values']['text']
# print(r)#原回復(fù):
# {'emotion': {'robotEmotion': {'a': 0, 'd': 0, 'emotionId': 20500, 'p': 0}, 'userEmotion': {'a': 0, 'd': 0, 'emotionId': 10300, 'p': 0}}, 'intent': {'actionName': '', 'code': 10004, 'intentName': ''}, 'results': [{'groupType': 1, 'resultType': 'text', 'values': {'text': '好煩呀存璃,robot不要跟你聊天了'}}]}
# r['results'][0]['values']['text']
# 在裝飾器中 添加isGroupChat=True,則只針對群聊仑荐,不添加則是默認(rèn)私聊
# isFriendChat=True, isGroupChat=True, isMpChat=True
@itchat.msg_register(itchat.content.TEXT,isGroupChat=True)
def auto_reply(msg):
# 設(shè)置默認(rèn)回復(fù),如果機器人沒有回復(fù)的話
default_reply = '嗯,好的'
# 搜索群聊,name參數(shù)攜帶群名
chatrooms = itchat.search_chatrooms(name="混子聯(lián)盟")
# friends = itchat.search_friends(name="恰似一江春水向東流")
# 從chatrooms中獲取該群的唯一標(biāo)識符纵东,類似于群id
real_chatrooms = chatrooms[0]['UserName']
# real_friends = friends[0]['UserName']
# 僅針對該群發(fā)送
if msg['FromUserName'] == real_chatrooms:
# print("原始msg:",msg)
# 獲取自動回復(fù),這里參數(shù)只取msg的Text的內(nèi)容
reply = get_reply_from_tuling123(msg['Text'])
# 發(fā)送
itchat.send(reply, toUserName=real_chatrooms)
# 微信登錄,設(shè)置參數(shù)可以短時間內(nèi)重復(fù)登錄不掃碼登錄
# itchat這里登錄的是網(wǎng)頁版
itchat.auto_login(hotReload=True)
# 啟動
itchat.run()
效果展示
舒服(●′ω`●)φ
那么本次的分享就到這里了粘招,喜歡的話麻煩點贊關(guān)注一下;不喜歡的話可以去看下小編的其他文章偎球,肯定有喜歡的洒扎;都不喜歡的話可以點個關(guān)注,萬一以后有喜歡的呢(??????)??