首页 > 其他分享 >使用itchat实现一个微信机器人聊天回复功能

使用itchat实现一个微信机器人聊天回复功能

时间:2023-11-10 10:11:05浏览次数:43  
标签:itchat Python 微信 机器人 print msg 安装 sendMsg

近看到好多群里都有一个@机器人的功能,挺有趣的,想自己也玩下,就通过百度一点点实现,在这总结一下整个从无到有的过程。

首先,要知道itchat,它是Python写的,所以想要实现这个机器人的功能,需要使用Python(就是Python,ε=(´ο`*)))唉),我是一点Python都不会,但是没关系,整个编码也就只需要几行,网上也有很多实现,可以参考。

1、安装Python环境

我的电脑是从来都没有搭建过Python相关的东西,所以想要运行,就需要先安装Python环境。

从官网https://www.python.org/downloads/ 上下载最新的Python安装包,然后安装,一定要知道被安装到哪个目录了

2、添加环境变量

先找到刚刚安装的Python,Python.exe在哪个目录下

如果找不到,可以试试找到下面这个,然后右键属性,看看它的目录(d:\Users\hello\AppData\Local\Programs\Python\Python37-32\python.exe)

 

选中path然后编辑,注意环境变量的每个值之间使用分号隔开的,所以最后一个值如果没有分号,要手动加一个,然后把刚刚找到的目录加到最后面(注意要去掉Python.exe),所以追加的值就是d:\Users\hello\AppData\Local\Programs\Python\Python37-32

 

 保存完之后,打开命令行,输入Python,显示下面的信息,说明Python,已经安装成功了

3、安装pip

pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。

下载路径:https://pypi.python.org/pypi/pip#downloads

 

下载后,解压,然后找到这个目录,在这个目录下,打开命令行窗口,执行 

python setup.py install

 

同样的方式,将D:\Users\hello\AppData\Local\Programs\Python\Python37-32\Scripts添加到Path 中,然后在命令行执行

pip list

此时Python的环境就全部安装完成了。

4、安装itchat

在命令行执行

pip install itchat

5、编写python文件

我使用的IDE是vscode,因为没有开发过Python,所以需要在扩展中搜索Python,并且安装

安装完成后,新建一个test1.py

 

直接拷贝下面的代码,到test1.py 中,然后调试运行,会弹出一张二维码,用手机微信扫描后,登录(此时你的账号,登录的就是电脑网页版的微信,所以电脑上这个时候不要登录微信,如果电脑上已经登录了微信,那么这个时候电脑上的微信会提示你,你的账号已在其他地方登录)

复制代码
import itchat

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    return msg.text

itchat.auto_login()
itchat.run()
复制代码

在手机端的微信,这个时候你的好友给你发的任何信息,都会自动返回相同的信息给你的好友。现在就实现了自动回复的功能。

6、调用微软小冰接口,实现聊天回复

在命令行执行,安装 requests 和 urllib

1 pip install requests
pip install urllib3 //3是urllib的版本号

拷贝下面的代码,运行

复制代码
# 加载包
import itchat
import requests
import urllib.parse

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
   robotChat(msg)

def robotChat(msg):
    print('robot chat')
    print(msg['Text'])
    sendMsg = msg['Text'].strip()
    try:
        r = requests.get('https://www4.bing.com/socialagent/chat?q=' + sendMsg+'&anid=123456')#小冰接口
        try:
            r1= r.json()
            info = urllib.parse.unquote(r1['InstantMessage']['ReplyText'])
            print(info)
            itchat.send(info, toUserName = msg['FromUserName'])#发送回复消息
        except Exception as e2:
            print(e2)
    except Exception as e:
        print(e)

itchat.auto_login()
itchat.run()
复制代码

7、群聊,@回复

复制代码
# 加载包
import itchat
import requests
import urllib.parse


@itchat.msg_register(itchat.content.TEXT, isGroupChat = True)
def group_reply(msg):
    if msg['isAt']:
        robotChat(msg)


def robotChat(msg):
    print('robot chat')
    print(msg['Text'])
    sendMsg = msg['Text'].strip()
    if sendMsg.find('@'+msg['User']['Self']['DisplayName'])==0:
        sendMsg = msg['Text'][len(msg['User']['Self']['DisplayName']) + 2:]
    elif msg['Text'].find('@'+msg['User']['Self']['DisplayName']) > -1:
        sendMsg = msg['Text'].replace('@'+msg['User']['Self']['DisplayName'], '')
    print(sendMsg)
    try:
        r = requests.get('https://www4.bing.com/socialagent/chat?q=' + sendMsg+'&anid=123456')
        try:
            r1= r.json()
            info = urllib.parse.unquote(r1['InstantMessage']['ReplyText'])
            print(info)
            itchat.send(info, toUserName = msg['FromUserName'])
        except Exception as e2:
            print(e2)
    except Exception as e:
        print(e)
复制代码

 

以上就是itchat最简单的文本回复功能

标签:itchat,Python,微信,机器人,print,msg,安装,sendMsg
From: https://www.cnblogs.com/shijiehaiyang/p/17823471.html

相关文章

  • 用飞书来谈恋爱,飞书机器人定时给女朋友问好
    前言用飞书机器人每天定时给女朋友发今天日期,在一起天数及女朋友所在地天气情况。后续更新更多定制化好玩的消息内容(距离两个人的生日天数,根据天气温度提醒女朋友加减衣服以及有雨出门带伞,在一起纪念日,及其他有意义的日子提醒)0.先看1.1版本效果技术要求云服务器(或会GithubAction)......
  • 韩国一男子被机器人压死
     具体内容链接:https://app.myzaker.com/news/article.php?pk=654c8b348e9f09494a50c451   虽然说这不是首次机器人伤人事件,但这却是首次机器人致人死亡事件,这个或许成为一个人类历史上的里程牌似的事件。   人类历史上的首起机器人杀人事件!!!  ==============......
  • 亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度
     概述 客户联络中心在现代是构成一个完整企业的重要组成部分,作为企业与顾客的连接纽带,在销售、服务支持以及提升顾客满意度方面发挥着至关重要的作用。使用亚马逊云科技AmazonConnect出海企业可以快速搭建自己的全球客服联络中心。当前客服联络中心也面临诸多的挑战,如长时间的电......
  • 好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。
    大家好,我是小悟兄弟们,阅读本文之前,建议先阅读【连夜干出来一个自动处理【微信消费者投诉管理系统】,支持多商户】。为了使工具更好用,也为帮助商户更好地处理消费者投诉,提升用户满意度,提高处理效率,满足用户需求,一直在研究完善功能。于是对工具进行了升级,可以直接回复用户、查看详情、......
  • 微信js-sdk接入
    1、有一个微信公众号,并获取到该公众号的AppID和AppSecret。其中AppID是可以对外公开的,AppSecret是该公众号的密钥,是需要绝对保密的2、向微信服务器发送一个GET请求,获取access_token和expires_in(凭证有效时间,单位:秒)。https://api.weixin.qq.com/cgi-bin/token?grant_type=clie......
  • 不再填鸭,AI机器人小奥!
    在这个充满科技魅力的时代,一款专为孩子学习量身打造的AI机器人“小奥”正式与大家见面!它是一款集全球领先的人工智能、语音识别、语义理解、情感陪伴为一体的高科技教育产品,旨在帮助孩子提高学习兴趣、拓宽知识面,以科技创新助力学习成绩提高。特色亮点高度智能:拥有强大的自然语言处......
  • 微信小程序hideLoading隐藏showToast提示的问题
     在调用hideLoading与hideToast时配置参数noConflict:true取消混用特性,解决hideLoading隐藏showToast提示的问题。wx.hideLoading({noConflict:true})//也适用于TaroTaro.hideLoading({noConflict:true}) ......
  • 如何防止微信PC端自动更新
    1.找到电脑上的hosts文件C:\Windows\System32\drivers\etc 2.修改hosts文件权限,改成能修改   3.在hosts文件中添加127.0.0.1dldir1.qq.com   ......
  • 微信小程序checkbox的bindchange不生效的问题
    1、用了ChatGPT和文心一言,都是让我用bindchange来绑定事件。<checkbox bindchange="checkboxChange" value="false">1231312</checkbox> 但是实际我绑定了,并没有效果checkboxChange:function(e){constcheckboxValue=e.detail.value;//获取当前checkbo......
  • 扫地机器人如何实现缺水检测-管道光电液位传感器
    扫地机器人是一种智能家居清洁设备,它可以通过自动巡航和清扫地面来减轻人们的家务负担。扫地机器人在工作时,需要确保水箱中有足够的清水进行清扫。当水箱缺水时,扫地机器人需要停止工作并发出缺水提示,以便及时为水箱加水。扫地机器人实现缺水检测的方法之一是使用管道光电液位传感器......