利用python做一个微信聊天机器人早已不是黑科技,网上有很多通过图灵机器人接口和itchat实现的教程。
然而图灵接口现在限制调用次数(100次/日),无法愉快的玩耍,所以我找了个替代方案
青云客智能聊天机器人API
接口url:http://api.qingyunke.com/api.php?key=free&appid=0&msg=
原理是在msg=后面加入发送的信息作为请求就可以收到回复,例如发送“你好”:
http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
回复格式为:
{"result":0,"content":"不要每次都用你好做开场白行不,忒俗了"}
具体实现方法,首先安装itchat:
pip install itchat
然后代码如下:
# -*- coding: utf-8 -*-
import itchat
import urllib.parse
from urllib import request
def get_response(msg):
s = urllib.parse.quote(msg)
url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s" % s
reply = request.urlopen(url,
data=None,
timeout=10).read().decode()
repdic = eval(reply)
return repdic['content']
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 设置一个默认回复,在出现问题仍能正常回复信息
defaultReply = '呵呵呵呵' + msg['Text']
reply = get_response(msg['Text'])
# a or b 表示,如有a有内容,那么返回a,否则返回b
return reply or defaultReply
#主程序
# 使用热启动,不需要多次扫码
itchat.auto_login(hotReload=True)
itchat.run()
需要注意的是,由于默认环境是ascii,msg含有中文的话是没法直接解析的,会引发报错。
需要用urllib.parse.quote()处理后再接到url后面。
运行后会弹出二维码,扫描登陆后即可开启自动回复,机器人会代为回答所有的私聊信息。
有一个问题是,由于itchat基于网页版微信,而目前新注册微信号不能登陆网页版微信(貌似出于安全考虑),所以只能用比较老的微信号测试啦。
运行效果如图:
参考文章:
https://blog.csdn.net/hfuturer/article/details/80721283
特别感谢:
http://www.qingyunke.com/