1-3 python编写智能回复机器人

itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。

使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。

安装

pip3 install itchat

登录

  • itchat.auto_login()  这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态

一下几句代码就能实现一个智能机器人的回复,这样以后都不用怕女朋友的信息回复不及时了 

使用注意事项:

1、一下的id如果不知道的话也可以直接改成昵称,比如你的女朋友备注为xxx,就改为xxx,不过最好是使用id

2、关于机器人,手动在微信上点击+号添加朋友------点击公众号---搜索微软小冰(如果你不喜欢这个机器人,可以换成别的机器人,只要更换相应的id就好了)

3、以下只是初级代码,如果想变的更高级,需要编写队列,根据队列中的用户来进行一一回复,比如1,2,3同时发消息给你,把他们遍进一个字典数组,回复一个就删除一个(中间具体的实现原理可自行编写)

import itchat
from itchat.content import *

#在这里只是实现简单的智能机器人功能,只针对个人使用
xiaobinId = '@e65dd597c659db72c01f956410c4e1e7'#机器人id
zhidinId ='@12f70535f9bc6d7133f95d1a8c33a01f49d5c5b04c40640f9ba2a2996be3b27f'#指定人的ID

@itchat.msg_register(TEXT)
def replyText_msg(msg):
    nickID = msg['FromUserName']
    #如果是指定用户发过来的消息,转发给小冰,在把小冰的信息转给指定的用户
    if(nickID == zhidinId):
        itchat.send(msg.text, toUserName=xiaobinId)

@itchat.msg_register(TEXT, isMpChat=True)
def replyMp_msg(msg):
    nickID = msg['FromUserName']
    if(nickID == xiaobinId):
        itchat.send(msg.text, toUserName=zhidinId)


#hotReload:退出程序后暂存登陆状态
if __name__ == '__main__':
    itchat.auto_login(hotReload=True)
    itchat.run()

关于itchat的资料:

回复消息

send

  • send(msg="Text Message", toUserName=None)

参数:

  • msg : 文本消息内容

  • @fil@path_to_file : 发送文件

  • @img@path_to_img : 发送图片

  • @vid@path_to_video : 发送视频

  • toUserName : 发送对象, 如果留空, 将发送给自己.

返回值

  • True or False

实例代码

# coding-utf-8
import itchat
itchat.auto_login()
itchat.send("Hello World!")
ithcat.send("@fil@%s" % '/tmp/test.text')
ithcat.send("@img@%s" % '/tmp/test.png')
ithcat.send("@vid@%s" % '/tmp/test.mkv')

send_msg

  • send_msg(msg='Text Message', toUserName=None),其中的的msg是要发送的文本,toUserName是发送对象, 如果留空, 将发送给自己,返回值为True或者False

实例代码

import itchat
itchat.auto_login()
itchat.send_msg("hello world.")

send_file

  • send_file(fileDir, toUserName=None)  fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒,返回值为True或者False

实例代码

mport itchat

itchat.auto_login()
itchat.send_file("/tmp/test.txt")

send_image

  • send_image(fileDir, toUserName=None)  参数同上

实例代码


import itchat

itchat.auto_login()
itchat.send_img("/tmp/test.txt")

send_video

  • send_video(fileDir, toUserName=None) 参数同上

实例代码

import itchat

itchat.auto_login()
itchat.send_video("/tmp/test.txt")

注册消息方法

itchat 将根据接受到的消息类型寻找对应的已注册的方法. 如果一个消息类型没有对应的注册方法, 该消息将会被舍弃. 在运行过程中也可以动态注册方法, 注册方式与结果不变.

注册方法

  • 不带具体对象注册, 将注册为普通消息的回复方法.

import itchat
from itchat.content import *
@itchat.msg_register(TEXT)   #这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
def simple_reply(msg):
    #这个是向发送者发送消息
    itchat.send_msg('已经收到了文本消息,消息内容为%s'%msg['Text'],toUserName=msg['FromUserName'])
    return "T reveived: %s" % msg["Text"]     #返回的给对方的消息,msg["Text"]表示消息的内容
    
  • 带对象参数注册, 对应消息对象将调用该方法,其中isFriendChat表示好友之间,isGroupChat表示群聊,isMapChat表示公众号

import itchat
from itchat.content import *

@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
def text_reply(msg):
    msg.user.send("%s : %s" % (mst.type, msg.text))
  • 消息类型

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值