当前位置: 首页 > 工具软件 > InChat > 使用案例 >

python+inchat 实现微信自动回复个人及群聊消息

祁坚壁
2023-12-01

1. 安装

cmd下安装requests和itchat,安装命令如下:

pip install requests
pip install itchat

2. 为什么安装itchat和requests
Requests:
是Python实现的简单易⽤的HTTP库(基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库)
ItChat:
itchat是一个开源的微信个人号接口,使用python和微信进行交互。

3.完整实现代码如下:

 #-*- coding:utf-8 -*-
import requests
import itchat

KEY = 'bce6c864602****f9d3a3c****50fe60'  #可以到图灵机器人官网申请一个,免费的

def get_response(msg):
    # 构造了要发送给服务器的数据
    apiUrl = 'http://www.tuling123.com/openapi/api'
    data = {
        'key'    : KEY,
        'info'   : msg,
        'userid' : 'wechat-robot',
    }
    try:
        r = requests.post(apiUrl, data=data).json() # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
        return r.get('text')                        # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
    except:                                        # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
        return                                    # 将会返回一个None

#注册获取别人发来的信息方法
@itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])
def tuling_reply(msg):
        print(msg.User['NickName'] +":"+ msg['Text'])    #这里输出给你发微信的人的名字和他发送的内容
        reply = get_response(msg['Text'])         #调取图灵机器人获取回复
        print(reply+"\n")       #打印机器人回复的消息
        return reply

@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)    #群消息的处理
def print_content(msg):
    if msg.User["NickName"]=='518'or msg.User["NickName"]=='518':    #这里可以在后面加更多的or msg.User["NickName"]=='你希望自动回复群的名字'
        print(msg.User['NickName'] +":"+ msg['Text'])     #打印哪个群给你发了什么消息
        print(get_response(msg['Text'])+"\n")           #打印机器人回复的消息
        return get_response(msg['Text'])
    else:                                         #其他群聊直接忽略
        pass

itchat.auto_login(hotReload=True)
itchat.run()

4.注意点
图灵机器人网址传送门
进去后点击申请自己的专属机器人,把KEY换成你的apikey,下面那个密匙那个按钮不要打开,否则机器人无法正常使用。机器人能识别的只有文字,官方自带的表情包和红包,而且只能回复文字。

 类似资料: