|
本帖最后由 dwj0 于 2020-4-13 15:35 编辑
因工作需要, 需要在好几个微信群中当有人@我们公司的几个人时,需要在半分钟回复收到,靠人工回复经常超时。因此用Phtyon的itchat库,实现了自动回复。为了模拟人工回复,加入了延时一段随机时间再回复的功能。先上代码:
- import itchat
- import time
- import random
- import requests
- #使用聊天机器人回复
- def get_response(msg):
- apiUrl = 'http://www.tuling123.com/openapi/api' #改成你自己的图灵机器人的api
- data={
- 'key': '481b7a6e08d844628bc7fc9bb8f8c401', # Tuling Key ,使用你自己的KEY
- 'info': msg, # 这是我们发出去的消息
- 'userid': 'wechat-robot', # 这里可随意修改
- }
- # 通过如下命令发送一个post请求
- r = requests.post(apiUrl, data=data).json()
- return r.get('text')
- #用于接收群里面的对话消息
- @itchat.msg_register([itchat.content.TEXT], isGroupChat=True)
- def group_reply(msg):
- #信息内容
- message = msg['Text']
- # 消息来自于哪个群聊
- chatroom_id = msg['FromUserName']
-
- # @需要的人
- if u'@张三' in message or u'@李四' in message or u'@王五' in message:
- # 消息并不是来自于需要同步的群
- if not chatroom_id in chatroom_ids:
- print(msg['ActualNickName']+':'+message+' [此群不需要回复]')
- return
- ts=random.randint(5,10)
- print(msg['ActualNickName']+':'+message+' ['+str(ts)+'秒后发出]')
- time.sleep(ts)
- return '收到, @'+msg['ActualNickName']+'。'
- # 扫二维码登录
- itchat.auto_login(hotReload=True)
- # 获取所需的群聊ID
- # 需要在微信中将需要同步的群聊都保存至通讯录
- Needchatrooms = ['采购群','售后群']
- chatrooms = itchat.get_chatrooms(update=True, contactOnly=True)
- chatroom_ids=[]
- for c in chatrooms:
- if c['NickName'] in Needchatrooms:
- print(c['NickName']+':'+c['UserName'])
- chatroom_ids.append(c['UserName'])
- print ('正在监测的群聊:', len(chatroom_ids), '个')
- print (' \n'.join([item for item in chatroom_ids]))
- # 开始监测
- itchat.run()
复制代码
----------------------------小白教程-----------------------------
1. 下载Phtyon3, 并安装。 我用的是3.8.2版本
2. 将C:\Users\Administrator\AppData\Local\Programs\Python\Python38\;C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Scripts加入环镜变量的PATH中
3. 安装itchat库,运行命令:pip install itchat
4. 将以上代码保存为 ".py"文件,右键这个文件-IDLE打开,安F5运行。
5. 扫描二维码登录,开启自动回复
---------------------------------说明------------------------------
1. 登录后相当于登录网页版微信,电脑客户端将自动退出,同时可能需要手机微信一直在线
2. 当前只能回复群消息,如果要回复个人消息,设isGroupChat=False。也可以再注册一条消息:@itchat.msg_register([itchat.content.TEXT])
3. 可以用机器人自动回复,在消息中返回 get_response(message) 即可,也可以根据关键词自定义回复内容。
4. 其实我也不会Phtyon, 这个代码崩溃过一次,找不到原因,希望有高手能改进。:(
5. 听说152手机号码不能在这个论坛实名,可能是近期的最后一贴了。:(
以下是测试效果图:
参考文档:
https://cloud.tencent.com/developer/article/1477297
https://woj.app/4931.html |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|