欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

itchat--使用python实现与图灵机器人交互

程序员文章站 2022-03-12 15:01:37
...

应用场景

七夕快到了,看着那些情侣在一起腻腻歪歪,整天短消息停不下来,众多苦逼的程序猿或许只能对着电脑了。是不是羡慕嫉妒恨呢!手机另一端怎么没人和自己在一起聊天呢?是不是也想有个人可以秒回自己的消息。没事,拿起python,我们来和图灵机器人互动。

以上纯xc,来看下使用python和机器人交互。

要做一个能够与人交流的机器人有很多种方法,其中最简单的莫过于使用他人提供的接口。下面以图灵机器人为例,演示这一功能。
简单来说,就是我们以一定的规则给图灵的服务器发送数据包,图灵服务器另一端会给予我们相应的应答。为此,你需要一个Tuling Key来告诉服务器有权和它进行对话。

进入图灵机器人官网注册后,会在个人中心自动生成一个apikey。
itchat--使用python实现与图灵机器人交互

  • 实现环境: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,否则返回b
    return reply or defaultReply
# 使用热启动,不需要多次扫码
itchat.auto_login(hotReload=True)
itchat.run()

配置好环境后,在编译器中运行上述程序,扫码登录后就可以正常测试了。之后使用别的手机给自己发消息,便可获得回复。

注:微信可以发送各类消息,包括文本、图片、语音等。不过本次测试我们只获取文本消息文本消息。
效果图如下:
itchat--使用python实现与图灵机器人交互


从一名不羁的码农开始,欢迎关注我的微信公众号,一起学习
itchat--使用python实现与图灵机器人交互

相关标签: python itchat