python学习之将个人微信变为聊天机器人

 

    本课程通过聊天机器人为例,介绍如何使用Python完成微信的点对点信息交互。 2. 内容简介 课程实现微信个人号聊天机器人 通过自定义消息处理方法加入聊天功能 3. 课程知识点 本课程项目完成过程中将学习: 微信消息的基本获取与处理 微信消息的指定发送 其中将重点介绍微信消息的获取与处理。

一、课程介绍

1. 课程来源

本文为LittleCoder原创,使用微信个人号接口itchat

关于itchat进一步使用的问题你可以在主页加入官方交流群也可以在课程下面向我提问。

课程在常见的三种系统中都可以进行操作,itchat建议使用可以安装的最新版本。

本课程通过聊天机器人为例,介绍如何使用Python完成微信的点对点信息交互。

2. 内容简介

  • 课程实现微信个人号聊天机器人
  • 通过自定义消息处理方法加入聊天功能

3. 课程知识点

本课程项目完成过程中将学习:

  • 微信消息的基本获取与处理
  • 微信消息的指定发送

其中将重点介绍微信消息的获取与处理。

二、实验环境

在终端中输入以下命令,完成微信的API包itchat的安装。

我们这里使用python3的环境(python2也是可行的):

通过该命令判断是否安装成功:

如果没有报错信息说明你已经将实验环境安装完成。

install

三、实验原理

通过微信的Python接口itchat获取微信消息。

将微信消息传输到机器人接口(这里以图灵为例),获取机器人的返回消息。

将返回消息返回给微信消息的发送人。

实现将微信个人号变为聊天机器人的目的。

四、实验步骤

0. 基础知识

为了照顾一些从未使用过Python的新用户与使用其他语言的用户,这里简单的讲一下以下的代码如何使用。

下面的每一段描述都给出了相应的测试代码,如果没有特殊说明这段代码可以这样使用:

打开桌面的Xfce终端,先将目录通过以下命令切到桌面。

之后使用gedit编辑器编辑我们的主程序。

你也完全可以使用vim,会使用vim的话想必也知道这里应该输入什么命令了。

最后将给出的代码复制进编辑器,保存并退出,使用如下命令就可以使用了。

那么,就让我们开始正式进入Python操作微信的探索之旅吧。

1. 实现微信消息的获取

itchat的注册时根据类型注册的。

在获取相应类型的信息时会调用该函数。

我们现在只需要获取最简单的文本消息,那么只需要这样注册:

其中第三行即注册的操作,通过装饰符将 print_content注册为处理文本消息的函数。

微信有各种类型的数据,例如图片、语音、名片、分享等,也对应不同的注册参数:

  • 图片对应 itchat.content.PICTURE
  • 语音对应 itchat.content.RECORDING
  • 名片对应 itchat.content.CARD
  • 其余的这里就不一一列举,更具体的内容可以自行搜索itchat阅读文档

执行命令

就可看到我们开始登陆微信:

login

扫码完成以后最基础的文本信息的接收就完成了,你可以尝试用他人的微信给自己发一条信息。

如果你不想要每次运行程序都扫码,可以在登陆命令中进行设置:

2. 实现微信消息的发送

微信可以发送各类消息,文本、图片、文件等,不过我们现在只需要使用文本的发送。

其余的消息的发送有兴趣可以自行阅读。

该发送消息的函数需要两个参数,消息的内容与接受者的UserName,即标识符。

那么我们试着向文件传输助手发送一条消息:

打开手机看一下是否就完成了消息的发送。

保存代码后,执行命令:

扫描登录后的效果如下:

send-hello

当然,还有一种更加快捷的回复方法就是在注册函数中直接回复。

例如下面的例子将会将文本消息原封不动的返回。

这种方式显然更加直观也更加简单(不需要输入接受者的UserName)

我们本次实践将会采用这种方式。

3. 实现最简单的与图灵机器人的交互

要做一个能够与人交流的机器人有很多种方法,最简单的莫过于使用他人提供的接口。

我们这里以图灵机器人为例,演示这一功能。

图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包(包含你对他说的话)

图灵的服务器会以一定的规则给你返回数据包(包含他回复你的话)

你需要一个Tuling Key来告诉图灵服务器你有权和他对话,我这里免费提供一些:

下面我做一个配置图灵机器人的简单介绍,你想要自行了解或者申请Tuling Key可以看这里

发送的规则简而言之是这样的:

其中userId是用户的标志,让机器人知道你是你。(也就是一个Tuling Key可以有多个用户)

而返回的内容基本是这样的:

我们需要的内容就在text键里面。

这里我们使用requests包完成整个操作(已经包含在itchat包的安装中了)。

最后值得一提的就是这是一个post请求,那么直接上代码应该比我絮絮叨叨的说要直观很多。

我们可以看到他回复了你好。

reply-hello

至此我们已经理解并掌握了所有需要的内容,下面将其组装起来即可。

五、实验程序

我先从概念上说一下组装是一个怎么样的过程。

当然,如果你觉得代码更直观,我也在代码中为你写好了注释。

这里我们首先将与图灵服务器的交互定义为一个函数。

我们需要这个函数接收我们要发送给图灵的消息,返回图灵返回给我们的消息。

再将与图灵交互并返回图灵返回结果的操作写成函数并在itchat中注册。

最后启动itchat,我们的程序就完成了。

六、实验结果

在本机上通过如下命令可以运行该程序

扫码登陆后程序就成功运行了。

之后在手机上使用别的账号给自己的微信号发送消息即可获得机器人的回复。

这里给出使用的效果图:

参与评论

游客评论不支持回复他人评论内容,如需回复他人评论内容请