最近看了下python,總感覺如果一直搞前端的東西,缺乏新鮮感。
首先擼了一遍python的基本語法
其實就可以開搞了。
這里用的是我用的是python3 ,mac自帶python2.7,但是這兩個是可以共存的~,千萬不要刪了mac自帶的python,因為里面好多東西都是基于這個版本來實現(xiàn)的。
言歸正傳,要實現(xiàn)微信機器人首先肯定是基于python,這就需要itchat 這個庫
wiki在這里https://itchat.readthedocs.io/zh/latest/intro/handler/
pip3 install itchat
還是相當好玩的。
先導入需要用到的庫
from itchat.content import *
import requests
import json
import itchat
然后調(diào)用圖靈的api,根據(jù)消息調(diào)用接口返回數(shù)據(jù)
def tuling(info):
appkey = "ffeeed42668044478b82261c341268ab"
url = "http://www.tuling123.com/openapi/api?key=%s&info=%s"%(appkey,info)
req = requests.get(url)
content = req.text
data = json.loads(content)
answer = data['text']
return answer
對于單個用戶的機器人回復,需要用itchat.msg_regist注冊回調(diào)方法,當有人跟你說話的時候,就會回調(diào)這個方法,自動回復。
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def text_reply(msg):
itchat.send('%s' % tuling(msg['Text']),msg['FromUserName'])
然后是針對群消息自動回復的
def group_id(name):
df = itchat.search_chatrooms(name=name)
return df[0]['UserName']
@itchat.msg_register(TEXT, isGroupChat=True)
def group_text_reply(msg):
# 當然如果只想針對@你的人才回復,可以設置if msg['isAt']:
item = group_id(u'社會主義的接盤人') # 根據(jù)自己的需求設置
print(item)
print(msg)
if msg['FromUserName'] == item:
itchat.send(u'%s' % tuling(msg['Text']), item)
最后調(diào)用啟動代碼,來吊起二維碼登錄就可以實現(xiàn)微信機器人了。
itchat.auto_login(hotReload=True)
itchat.run()
一把梭過來,在終端執(zhí)行 python3 groupChat.py