1. 安装
cmd下安装requests和itchat,安装命令如下:
pip install requests
pip install itchat
2. 为什么安装itchat和requests
Requests:
是Python实现的简单易⽤的HTTP库(基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库)
ItChat:
itchat是一个开源的微信个人号接口,使用python和微信进行交互。
3.完整实现代码如下:
#-*- coding:utf-8 -*-
import requests
import itchat
KEY = 'bce6c864602****f9d3a3c****50fe60' #可以到图灵机器人官网申请一个,免费的
def get_response(msg):
# 构造了要发送给服务器的数据
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' : KEY,
'info' : msg,
'userid' : 'wechat-robot',
}
try:
r = requests.post(apiUrl, data=data).json() # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
return r.get('text') # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
except: # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
return # 将会返回一个None
#注册获取别人发来的信息方法
@itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])
def tuling_reply(msg):
print(msg.User['NickName'] +":"+ msg['Text']) #这里输出给你发微信的人的名字和他发送的内容
reply = get_response(msg['Text']) #调取图灵机器人获取回复
print(reply+"\n") #打印机器人回复的消息
return reply
@itchat.msg_register([itchat.content.TEXT], isGroupChat=True) #群消息的处理
def print_content(msg):
if msg.User["NickName"]=='518'or msg.User["NickName"]=='518': #这里可以在后面加更多的or msg.User["NickName"]=='你希望自动回复群的名字'
print(msg.User['NickName'] +":"+ msg['Text']) #打印哪个群给你发了什么消息
print(get_response(msg['Text'])+"\n") #打印机器人回复的消息
return get_response(msg['Text'])
else: #其他群聊直接忽略
pass
itchat.auto_login(hotReload=True)
itchat.run()
4.注意点
图灵机器人网址传送门
进去后点击申请自己的专属机器人,把KEY换成你的apikey,下面那个密匙那个按钮不要打开,否则机器人无法正常使用。机器人能识别的只有文字,官方自带的表情包和红包,而且只能回复文字。