Python 实现图灵微信机器人
2019-01-18 本文已影响21人
butterflyer
最近看了下python,总感觉如果一直搞前端的东西,缺乏新鲜感。
首先撸了一遍python的基本语法
其实就可以开搞了。
这里用的是我用的是python3 ,mac自带python2.7,但是这两个是可以共存的~,千万不要删了mac自带的python,因为里面好多东西都是基于这个版本来实现的。
言归正传,要实现微信机器人首先肯定是基于python,这就需要itchat 这个库
wiki在这里https://itchat.readthedocs.io/zh/latest/intro/handler/
pip3 install itchat
还是相当好玩的。
先导入需要用到的库
from itchat.content import *
import requests
import json
import itchat
然后调用图灵的api,根据消息调用接口返回数据
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注册回调方法,当有人跟你说话的时候,就会回调这个方法,自动回复。
@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'社会主义的接盘人') # 根据自己的需求设置
print(item)
print(msg)
if msg['FromUserName'] == item:
itchat.send(u'%s' % tuling(msg['Text']), item)
最后调用启动代码,来吊起二维码登录就可以实现微信机器人了。
itchat.auto_login(hotReload=True)
itchat.run()
一把梭过来,在终端执行 python3 groupChat.py