itchat实现微信消息自动回复

上次写的博客是用itchat接口去爬取好友信息,现在发现了更加好玩的东西。这次完成的是个人微信的聊天机器人,原理是将收到的消息传送到机器人接口,然后获取机器人返回的消息,将机器人返回的消息发送给发送消息的人。因为机器人是免费版本的,所以可以实现的功能也不是很多,每天回复的消息的数量也是有限的,还有就是可能不能识别发送过来的部分消息,或者是消息收到后有延时需要重新发送一遍。

开发环境 :win10 + sublime、python环境以及所需要的安装包(这里安装包以前的博客有写过)

首先需要测试的是将接受的信息获取,并原封不动的发送给发送方 :

import itchat

@itchat.msg_register(itchat.content.TEXT)
#将print_content注册为处理消息的函数
def print_content(msg):
    #表示将消息原封不动发送回去
    return msg['Text']

#微信登陆
itchat.auto_login()
itchat.run()

如果实现机器人的自动回复需要调用api,这里使用的图灵机器人,首先需要在官网上注册一个账号 :

网址 :http://www.tuling123.com/

登陆后创建一个机器人,等一系列流程走完后,回到主页,会多一个机器人,如下图 :

然后复制机器人的apikey。然后看一下机器人回复消息是如何实现的 :

import requests

apiUrl = 'http://www.tuling123.com/openapi/api'
#构造发送的数据
data = {
    #你刚才复制的apikey
    'key'    : 'eeb065b15b894e329658e3b290f6509a',
    #发送的消息
    'info'   : 'hello',
    #自己随便取名字
    'userid' : 'wechat',
}
#发送post请求,得到机器人回复
res = requests.post(apiUrl, data=data).json()
#可以打印出机器人回复的内容
#print(res)

然后再把两部分代码整合,在机器人回复中,将info的参数改为收到的消息,这样就可以根据收到的消息来实现自动回复。

最后附上代码 :

import itchat
import requests

KEY = "eeb065b15b894e329658e3b290f6509a"


def get_response(msg):

    apiUrl = "http://www.tuling123.com/openapi/api"
    data = {
        'key': KEY,
        'info': msg,
        'userid': 'wechat',
    }
    try:
        res = requests.post(apiUrl, data=data).json()
        return res.get('text')
    except:
        return


@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):

    defaultReply = 'I received ' + msg['Text']
    Reply = get_response(msg['Text'])
    return Reply or defaultReply


# hotReload(热加载),短时间内不需要再次扫码登陆
#为了能方便的关掉,所以没有使用热加载,需要热加载的可以参考注释代码
#itchat.auto_login(hotReload=True)
itchat.auto_login()

itchat.run()

上述代码就实现了个人微信的半智能回复,为什么说是半智能呢,因为有的话是他不能识别的,而且这个机器人体验版的功能也不是很多,所以暂时称为半智能吧。。。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值