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

首先,要知道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

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'])==:
sendMsg = msg['Text'][len(msg['User']['Self']['DisplayName']) + :]
elif msg['Text'].find('@'+msg['User']['Self']['DisplayName']) > -:
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实现一个微信机器人聊天回复功能的更多相关文章

  1. 用python itchat写一个微信机器人自动回复

    首先看一下效果: 进入正题: 一.首先要去图灵机器人网站注册一个机器人账号: 链接:http://www.tuling123.com/ 你可以获取自己的图灵机器人apikey 懒得话不注册也可以,我下 ...

  2. phantomjs + python 打造一个微信机器人

    phantomjs + python 打造一个微信机器人 1.前奏   媳妇公司不能上网,但经常需要在公众号上找一些文章做一些参考,需要的时候就把文章链接分享给我,然后我在浏览器打开网页,一点点复制过 ...

  3. python使用itchat库实现微信机器人

    itchat是一个开源的微信个人号接口,可以使用该库进行微信网页版中的所有操作,比如:所有好友.添加好友.拉好友群聊.微信机器人等等.详细用户请看文档介绍,在这里. 本文主要使用该库完成一个能够处理微 ...

  4. 用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  5. 通过WebSocket实现一个简单的聊天室功能

    WebSocket WebSocket是一个协议,它是是基于TCP的一种新的网络协议,TCP协议是一种持续性的协议,和HTTP不同的是,它可以在服务器端主动向客户端推送消息.通过这个协议,可以在建立一 ...

  6. 使用nodejs的wxmnode模块,开发一个微信自动监控提醒功能,做个天气预报。

    这个模块是一个公众号的模块,名字叫"帮你看着". 原本这个公众号是做股票监控提醒的,我也没炒股.因为接口支持写入任何内容,所以可以有其他的用处.比如做成天气预报定时提醒. 我们去n ...

  7. 树莓派实战:微信机器人(itchat实现)

    背景 楼主有一台树莓派4B开发板(8G内存版),是目前的顶配机型.这一年来的业余时间,除了写Java.架构方面的文章,也陆续折腾了不少树莓派上的好玩小项目,在此新开一个树莓派实战的文章系列,分享给粉丝 ...

  8. Python之微信-微信机器人

    一 简介 二 登录微信 三 微信好友男女比例 四 微信好友地域分布 五 微信聊天机器人 一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行 ...

  9. Java接入图灵机器人,实现与机器人聊天

    很多人都玩过微信,其中就有与机器人聊天的功能:

随机推荐

  1. JavaScript中this 详解

    涵义 this 关键字是一个非常重要的语法点.毫不夸张地说,不理解它的含义,大部分开发任务都无法完成. 首先, this 总是返回一个对象,简单说,就是返回属性或方法“当前”所在的对象. this.p ...

  2. vue生命周期探究(一)

    前言 在使用vue开发的过程中,我们经常会接触到生命周期的问题.那么你知道,一个标准的工程项目中,会有多少个生命周期勾子吗?让我们来一起来盘点一下: 根组件实例:8个 (beforeCreate.cr ...

  3. poshytip基本使用

    js基本调用方法 $("#tips").poshytip({ content: $this.text(), alignTo: 'target', alignX: direction ...

  4. 聊聊Docker数据卷和数据卷容器

    当程序在容器运行的时候,特别是需要与其他容器中的程序或容器外部程序进行沟通交流,这时需要进行数据交换,作为常用的两种沟通数据的方式,网络通信与文件读写是需要提供给程序的支持, [数据卷] 文件是数据持 ...

  5. FastJson 数组、List、Set、Map基本序列化与日期格式化

    摘要: FastJson可以直接序列化数组.List.Set.Map等,也可以直接支持日期类型数据的格式化,包括java.util.Date.java.sql.Date.java.sql.Timest ...

  6. 最短路径(给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。)

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 例: 输入: [ [1,3,1], [1,5,1], [ ...

  7. C++中全排列算法函数next_permutation的使用方法

    首先,先看对next_permutation函数的解释: http://www.cplusplus.com/reference/algorithm/next_permutation/?kw=next_ ...

  8. mac 命令操作

    内核空间和用户空间 x86架构中将内核地址空间划分三部分:ZONE_DMA.ZONE_NORMAL和 ZONE_HIGHMEM. 自动加载(开机自动启动服务) ln -sfv /usr/local/o ...

  9. php(apache)切换版本

    php(apache)切换版本 1.brew link php@7.1 2.上两行写入 ~/.bash_profile文件 3.source ~/.bash_profile 4.sudo vi /et ...

  10. Linux命令集

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...