应用场景
七夕快到了,看着那些情侣在一起腻腻歪歪,整天短消息停不下来,众多苦逼的程序猿或许只能对着电脑了。是不是羡慕嫉妒恨呢!手机另一端怎么没人和自己在一起聊天呢?是不是也想有个人可以秒回自己的消息。没事,拿起python,我们来和图灵机器人互动。
以上纯xc,来看下使用python和机器人交互。
要做一个能够与人交流的机器人有很多种方法,其中最简单的莫过于使用他人提供的接口。下面以图灵机器人为例,演示这一功能。
简单来说,就是我们以一定的规则给图灵的服务器发送数据包,图灵服务器另一端会给予我们相应的应答。为此,你需要一个Tuling Key来告诉服务器有权和它进行对话。
进入图灵机器人官网注册后,会在个人中心自动生成一个apikey。
- 实现环境:Windows系统;python 3.x;
在开始编写程序之前,需要安装 itchat 包。itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。
下面直接从写入详细注释的代码开始,这样更显得直观。
# coding = utf8
import requests
import itchat
# 去图灵机器人官网注册后会生成一个apikey,可在个人中心查看
KEY = '8edce3ce905a4c1dbb965e6b35c3838f'
def get_response(msg):apiUrl = 'http://www.tuling123.com/openapi/api'data = {'key' : KEY,'info' : msg, # 这是要发送出去的信息'userid' : 'wechat-rebot', #这里随意写点什么都行}try:# 发送一个post请求r = requests.post(apiUrl, data =data).json()# 获取文本信息,若没有‘Text’ 值,将返回Nonoe return r.get('text')except:return
# 通过定义装饰器加强函数 tuling_reply(msg) 功能,获取注册文本信息
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):# 设置一个默认回复,在出现问题仍能正常回复信息defaultReply = 'I received: ' +msg['Text']reply = get_response(msg['Text'])# a or b 表示,如有a有内容,那么返回a,否则返回breturn reply or defaultReply
# 使用热启动,不需要多次扫码
itchat.auto_login(hotReload=True)
itchat.run()
配置好环境后,在编译器中运行上述程序,扫码登录后就可以正常测试了。之后使用别的手机给自己发消息,便可获得回复。
注:微信可以发送各类消息,包括文本、图片、语音等。不过本次测试我们只获取文本消息文本消息。
效果图如下:
从一名不羁的码农开始,欢迎关注我的微信公众号,一起学习