dwj0 发表于 2020-4-13 15:08:21

发一个用Phtyon实现的微信群自动回复“收到”的例子

本帖最后由 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(, 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())
# 开始监测
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()
3. 可以用机器人自动回复,在消息中返回 get_response(message) 即可,也可以根据关键词自定义回复内容。
4. 其实我也不会Phtyon, 这个代码崩溃过一次,找不到原因,希望有高手能改进。:(
5. 听说152手机号码不能在这个论坛实名,可能是近期的最后一贴了。:(

以下是测试效果图:


参考文档:
https://cloud.tencent.com/developer/article/1477297
https://woj.app/4931.html

renpeng009672 发表于 2020-4-13 15:31:47

听说这种操作可能会被封号,一直不敢用自己的号试水

shawn_bu 发表于 2020-4-13 15:48:00

半分钟需要响应,去撒泡尿都不止半分钟啊。你们公司当所有人都是机器人么。{:titter:}

Name_006 发表于 2020-4-13 16:17:48

sha啥公司 这么无脑的要求

jjj206 发表于 2020-4-13 17:12:39

宁愿超时也不用外挂

lw32 发表于 2020-4-13 18:14:35

做客服吗?如果不是客服要求半分种内回复,问题是我遇到的客服好像也没有30秒必回
那肯定要时刻盯着,打字还要快

huangjiyue 发表于 2020-4-13 18:20:45

之前用qq的python包玩了几次,封号了。

nanfang2000 发表于 2020-4-13 18:37:49

huangjiyue 发表于 2020-4-13 18:20
之前用qq的python包玩了几次,封号了。

为啥封号?既然给开发库还不让用?

huangjiyue 发表于 2020-4-13 18:43:01

nanfang2000 发表于 2020-4-13 18:37
为啥封号?既然给开发库还不让用?

想多了,那个python包不是官方出的。github上的,谨慎使用,包括楼主位的这个itchat

kation122 发表于 2020-4-13 18:47:03

nanfang2000 发表于 2020-4-13 18:37
为啥封号?既然给开发库还不让用?

这是个人自己做的库,腾讯严格查处的,目前新的微信号都禁止登录了,老的微信号可以使用,但是检测到就封号。

jsntzxh 发表于 2020-4-13 21:36:04

itchat还能用?

xpstudio2011 发表于 2020-4-13 22:15:15

测试之前,先跟微信借1000块钱,以防封号。

joelin97 发表于 2020-4-13 22:21:35

不能用

huangqi412 发表于 2020-4-14 09:39:30

shawn_bu 发表于 2020-4-13 15:48
半分钟需要响应,去撒泡尿都不止半分钟啊。你们公司当所有人都是机器人么。 ...

它们公司全部是属数码管的,动态扫描{:titter:}

z123 发表于 2020-4-14 09:42:52

Name_006 发表于 2020-4-13 16:17
sha啥公司 这么无脑的要求

钱如果很到位,我觉得可以我做到10s内响应,哈哈

litchiate 发表于 2020-4-14 09:46:30

itchat 前年用过, 1个月后那个号就不让登网页版微信了. 还好不是自己的号.

xiaxquan 发表于 2020-4-14 15:58:10

下一步是不是要开发机器人自动聊天处理问题了

dwj0 发表于 2020-4-15 09:04:09

joelin97 发表于 2020-4-13 22:21
不能用

新注册的号不能用, 原来是真的。。。。

菜菜 发表于 2020-4-15 09:34:54

微信号已经不能网页登录了
页: [1]
查看完整版本: 发一个用Phtyon实现的微信群自动回复“收到”的例子