摘要:使用微信itchat接口和图灵机器人接口,三十行代码将你的微信变成聊天机器人,自动回复来自好友的消息。
01
—
itchat安装与使用说明
具体详情可以参见官方网站:https://github.com/littlecodersh/ItChat
itchat是一个开源的微信个人号接口,提供很多功能能帮助你处理微信消息,扩展微信功能。
(1)发送消息给文件助手
import itchat
itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')
(2)回复文本信息,当收到好友给你发的文本信息时,返回该消息的内容。注意:itchat.content.TEXT就表示文本信息,相应的还有MAP、CARD、SHARING等消息类型,分别表示发送的是地图、名片、分享的内容等。
import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
return msg.text
itchat.auto_login()
itchat.run()
02
—
图灵机器人接口
通过第一部分的描述,我们知道了通过ITchat可以返回好友发送的消息内容。这里只需要将该消息内容替换成聊天机器人的内容就可以实现微信的自动回复了。我们选用图灵机器人的接口(注册开发者,一天有1000次免费调用机会),链接地址http://www.tuling123.com/。具体使用,需要获得KEY值,访问该网站的web api,得到返回内容即可,如下所示:
KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
def get_response(msg):
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' : KEY,
'info' : msg,
'userid' : 'pth-robot',
}
try:
r = requests.post(apiUrl, data=data).json()
return r.get('text')
except:
return
得到的聊天机器人聊天过程:
03
—
完整代码
使用说明:运行代码后出现微信二维码,需要扫码才能登陆。
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding( "utf8" )
import itchat
import requests
from itchat.content import *
KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
def get_response(msg):
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' : KEY,
'info' : msg,
'userid' : 'pth-robot',
}
try:
r = requests.post(apiUrl, data=data).json()
return r.get('text')
except:
return
#自动回复文本消息
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING], isGroupChat=False)
def text_reply(msg):
#print msg['Text']
defaultReply = 'I received: ' + msg['Text']
reply = get_response(msg['Text'])
itchat.send(reply or defaultReply,msg['FromUserName'])
#自动回复图片消息
@itchat.msg_register(PICTURE, isGroupChat=False)
def download_files(msg):
itchat.send('%s: %s' % (msg['Type'], msg['Text']), msg['FromUserName'])
# 扫二维码登录
itchat.auto_login(hotReload=True)
itchat.run()