python接入图灵机器人微信自动回复

最近无聊突然想微信搞一个类似qq群机器人的自动回复,上网查了下资料发现c++不知怎么搞,但是python有个库却可以接入微信,那就是itchat,高兴之余去图书馆找了本夏敏捷的《python项目案例开发》看了下,然后自己有模有样的照着码了,发现还真不赖,就是有点缺点,当有人回复时机器人还会自动回复,想了下要是有个函数判定主人是否在线以至于机器人在主人回复期间不进行回复。

好了下面附上最后的成果:

import time
import requests
import json
import itchat
from threading import Timer
from itchat.content import *
# 调用图灵机器人的api,采用爬虫的原理,根据聊天消息返回回复内容
def tuling(info):
  appkey = "****c34bc0401fbcfddded709****"
#此处是我的调用的apikey,可以换成自己的
  url = "http://www.tuling123.com/openapi/api?key=%s&info=%s"%(appkey,info)
  req = requests.get(url)
  content = req.text
  data = json.loads(content)
  answer = data['text']
  return answer

def isMsgFromMyself(msgFromUserName):
    # 检查是否自己发送的
    global myName
    return myName == msgFromUserName

'''
# 注册文本消息,绑定到text_reply处理函数
# text_reply msg_files可以处理好友之间的聊天回复
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def text_reply(msg):
  itchat.send('%s' % tuling(msg['Text']),msg['FromUserName'])
itchat.run()
#itchat.logout()#退出登录
'''
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    global zhuRenReply, timerSet, noReply, t
    if isMsgFromMyself(msg['FromUserName']):
        print("有人回复")
        zhuRenReply = False
        noReply = False
        try:
            t.cancel()
            print("计时器清零")
            timerSet = False
        except:
            pass
        return None
    
    if zhuRenReply:
        defaultReply = '我已经接收到你的消息: ' + msg['Text']#调用机器人错误默认回复
        reply = tuling(msg['Text'])
        return reply or defaultReply
    else:
        noReply = True
        if not timerSet:
            print("等待图灵机器人开启开始计时")
            t = Timer(59, sendBusyStatus,[msg['FromUserName']])
            '''
            计时函数
            Timer(interval, function, args=[], kwargs={}) 
            interval: 指定的时间(秒数) 
            function: 要执行的方法 
            args/kwargs: 方法的参数
            '''
            t.start()
            timerSet = True
            '''  
            t.cancel()
            cancel()方法都是为了清除任务队列中的任务
            '''

def sendBusyStatus(UserName):
    global noReply, zhuRenReply, timerSet
    print("一分钟已到图灵机器人开启")
    if noReply:
        itchat.send("主人一分钟没回复,说明我的主人没空噢!让我先陪你聊一会吧", UserName)
        zhuRenReply = True
        timerSet = False
        
itchat.auto_login()#接收二维码登入微信,关闭期间可以保留一段时间
zhuRenReply, timerSet, noReply = False, False, False
t=0
myName = itchat.get_friends(update=True)[0]['UserName']
itchat.run()#开始运行

最后写一下简单步骤:

1:安装itchat,网上有一堆教程,这里就不说了

2:去图灵机器人官网注册一个一个机器人,免费版个人一天可调用100次。

图灵机器人官网:http://www.tuling123.com

3:了解itchat库的各个内容,如何登入微信,接收信息,发送信息。

4:调用图灵机器人的api,采用爬虫的原理(requests库),根据聊天消息返回回复内容

5:了解python定时函数Timer()的使用

6:接入自己微信进行测试

图灵机器人 图灵机器人 API 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 是在人工智能的核心力(包括语义理解、问答场景交互知 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 识管理等)的基础上,为广大开发者、合作伙伴和企业提供一系列于云计算数据平 台的在线服务和开发接口。 台的在线服务和开发接口。 台的在线服务和开发接口。 台的在线服务和开发接口。 台的在线服务和开发接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能视界探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值