导语:
哈喽呀铁汁们!这不年末了嘛小编最近忙到完全都没时间看消息。闺蜜连发几天消息都没回下班回家就收到闺蜜严厉的斥责🙈🙈于是我灵机一动准备搞个会自动回复的聊天机器人再也不拍回不了消息被误会啦~
说干就干👏👏
第一部分:(1)好友聊天自动回复
第一步,安装python环境。
打开python官网https://www.python.org/downloads/,下载与你的电脑系统相匹配的python发行版本,推荐python3.5-python3.6,版本太高了可能有许多未知的bug,太低了兼容性不太好。
第二步,安装itchat库
在命令行下输入pip install itchat
完成安装
第三步,编写代码
核心代码如下:
#coding=utf8
import itchat
# 当接收到的消息是Text,即文字消息
#注册re_msg的意义在于,告诉itchat每次有符合特定条件的消息,itchat要把消息作为参数,去调用re_msg。
@itchat.msg_register('Text')
def text_reply(msg):
#message:取出msg里面的文本消息
message = msg['Text']
# 回复给好友
replay = u'肖涛已在电脑上登陆网页微信,但暂时无法进行交流,可以给他发送电脑QQ消息哈'
#主要是一些关键词设置
# if B in A 如果 A中有B的话
if u'干什么' in message:
replay = u'在忙呢'
elif u'逼' in message:
replay = u'含有敏感词汇,请注意言辞'
elif u'生气' in message:
replay = u'生气对身体不好'
elif u'?' in message:
replay = u'哈哈,我也不知道'
elif u'不理你' in message:
replay = u'乖,忙完给你买糖吃'
elif u'涛' in message:
replay = u'他是我主人'
elif u'厉害' in message:
replay = u'不不不,辣鸡一个'
elif u'你好' in message:
replay = u'你好哇'
elif u'好吧' in message:
replay = u'再见'
return replay
#弹出扫码登录界面,参数这样设置的好处是短时间内退出程序,再次登录可以不用扫码
itchat.auto_login(hotReload=True)
运行之后,会弹出一个二维码,用微信扫一扫登录网页版微信之后,这份代码就会接管你的消息通知。下面是一个简单的效果图
(2)女友消息自动回复
嘿嘿这part是个在峡谷里没时间回女友的人准备的建议偷偷藏起来以备不时之需
设计思路
设计思路比较简单,有点类似于autojs的程序设计。通过生成不同的聊天对白,然后粘贴到微信、QQ或是其他聊天窗口,最后自动点击发送,从而实现自动聊天轰炸功能。
设置发送内容
1'''设置发送内容'''
2
3'''篇幅有限、设置几句聊天对白,想要更多的对白相信你们会有办法的'''
4
5content_ = """
6无论世间多少荆棘,只要有你,生活就无比甜蜜!
7遇见你之前,我对未来有很多要求,遇见你之后,我只要求是你!
8想为你做一幅画,以心为笔,以情为墨,以爱你为内容,以余生为落笔!
9写你名字可真难,倒不是笔画繁琐,只是写你名字时地蘸上四分春风,三分月色,两分微醺,还有一分你的眉眼才好。十九、我想和你从放荡不羁的青春,伴你到安安稳稳的枕边人!
10"""
安装扩展库
1'''安装扩展库'''
2
3# pip install pyautogui
4
5import pyautogui
6
7# 复制、粘贴扩展库
8
9import pyperclip
10
11# 时间控制模块
12
13import time
发送对白
'''发送对白'''
2# 开始就等待10秒,这个时间段内可以准备好聊天窗口
3
4time.sleep(10)
5
6# 获取鼠标的位置
7
8mouse_position = pyautogui.position()
9
10# 逐行遍历对白内容
11
12for line_ in content_.split('\n'):
13
14 if line_:
15
16 # 获取鼠标
17
18 pyautogui.click(mouse_position[0],mouse_position[1])
19
20 # 将当前行复制到剪切板
21
22 pyperclip.copy(line_)
23
24 # 粘贴到聊天窗口
25
26 pyautogui.hotkey('ctrl','v')
27
28 # 按回车键
29
30 pyautogui.typewrite('\n')
31
32 print("聊天内容:[ ",line_," ],发送成功!")
33
34 else:
35
36 print("内容为空,进入下一个!")
37
38 time.sleep(3)
第二部分:群聊助手
第一步是点对点的消息自动回复,本部分实现的是点对多、在群中的消息自动回复。请确认上一部分实现无误之后再来尝试第二部分,因为第二部分需要第一部分的环境配置做支撑。
编写代码
import itchat
import requests
def get_response(msg):
apiUrl = 'http://www.tuling123.com/openapi/api' #改成你自己的图灵机器人的api
'key': 'ce697b3fc8b54d5f88c2fa59772cb2cf', # Tuling Key
'info': msg, # 这是我们发出去的消息
'userid': 'wechat-robot', # 这里可随意修改
}
# 通过如下命令发送一个post请求
r = requests.post(apiUrl, data=data).json()
return r.get('text')
@itchat.msg_register(itchat.content.TEXT)
#用于接收来自朋友间的对话消息 #如果不用这个,朋友发的消息便不会自动回复
def print_content(msg):
return get_response(msg['Text'])
#用于接收群里面的对话消息
@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)
def print_content(msg):
return get_response(msg['Text'])
itchat.auto_login(True)
itchat.run()
接入图灵机器人
打卡图灵机器人官网,http://www.tuling123.com/,注册账号,新建一个机器人,如下图
20180718175512463.png
把图中的apikey替换到代码里就行,如果你要用我的,我也无法拒绝,毕竟我的apikey也贴出来了。
运行效果
和上一个效果图不同的是,这是在一个群里的消息
简要原理
一但接收到信息,就会调用get_response()方法,把消息传给图灵机器人,然后图灵机器人把回复信息再返回给微信。
截至2018/11/30代码运行无误,最新更新在我的github:grouphandler.py
end