微信聊天机器人开发,微信机器人是怎么实现的视频,微信怎么和机器人聊天
想想把个人微信变成机器人也挺好玩的。这个项目将教你如何把自己的微信变成一个聊天机器人。嗯,没错。简直就像一只端庄的小鸟(哈哈哈)。
最终效果图:效果图原理:通过微信的Python接口itchat获取微信消息。将微信消息传输到机器人接口(这里以图灵为例)获取机器人的返回消息。将返回消息返回给微信消息的发送方。
通过以上,我们可以实现把微信个人号变成聊天机器人的目的。
开发第一步:实现微信消息的获取。itchat的注册是根据类型进行注册的,当获取到对应类型的信息时会调用这个函数。
微信有各种类型的数据,比如图片、语音、名片、分享等。这也对应于不同的注册参数:
图片对应itchat.content.PICTURE语音对应itchat.content.RECORDING名片对应itchat.content.CARD其余不在此列。更具体的内容,可以自行搜索itchat阅读文档。我们的项目是以最简单的短信为例来说明的,所以你只需要这样注册就可以了:
import it chat @ it chat . msg _ register(it chat . content . Text)def print _ content(msg):print(msg[ Text ])
Chat.auto _ login () itchat.run()第三行是注册的操作,print_content通过修饰注册为处理短信的函数。
然后运行程序,可以看到我们开始登录微信了:
登录扫码完成后,就完成了最基本的文字信息的接收。可以尝试用别人的微信给自己发消息。
2.我们可以发送各种消息、文本、图片、文件等。通过发微信,但是现在只需要发文字。
Chat.send(消息内容, to UserName )这个函数发送消息需要两个参数,消息的内容和接收方的用户名,也就是标识符。
因此,让我们尝试向文件传输助手发送一条消息:
# coding=utf8 import itchatitchat . auto _ log in(hot reload=true)#注意实验楼环境的中文输入。切换it chat . send(u test message sending , filehelper ),打开手机查看是否已经发送完消息。
保存代码后,执行命令,扫描登录后的效果如下:
Send-hello当然还有更快的方法,直接在注册功能里回复。对于这种方法,你可以点击这里查看。
3.实现与图灵机器人最简单的交互有很多种方式。成为一个可以与人交流的机器人有很多方法。最简单的方法就是使用别人提供的接口。
关于配置图灵机器人的介绍,点击这里查看。
4.代码实现。前面的介绍描述了如何获取消息、发送消息以及与机器人交互。这些都是实现这个项目需要的知识点。下面组装一下就可以了。
至于如何组装,就像前面介绍的原理一样,我们先把与图灵服务器的交互定义为一个函数。我们需要这个函数来接收我们要发送给图灵的消息,并返回图灵返回给我们的消息。然后将与图灵交互并返回图灵返回的结果的操作写成一个函数,注册在itchat中。最后启动itchat,我们的程序就完成了。
具体代码实现,点击【利用微信API把你的微信变成聊天机器人】查看详细开发文档。
Python实现微信自动回复指定发送群聊消息1
阅读本文大约需要5分钟
先说一件事。抱着“结算成本不算成本”的态度,我将删除或合并我最近之前写的文章,并根据资深专家的建议改进格式和内容。
因为一直在写基础,今天朋友提了以下要求。对了,我写了一个小项目和大家分享。
(图为微信截图,不能粘贴。抱歉。但不影响下面的读数)
2
itchat:
微信个人号强大的开源接口,使用几十行代码,让你快速了解你的微信好友、群、微信官方账号的信息。统计签名、好友的全国分布等信息。我们以前见过的,实际上在你知道它是什么之后就可以很简单地实现。
这个项目的重点不是介绍itchat,我会解释使用的部分(写在程序的评论里)。如果你不熟悉或者想了解整个模块,请微信官方账号给我留言,稍后分享给你。
导入模块和申明变量:
import itchat from itchat . content import * gname= set group name context=这是我的set群发来的消息,微信正式处于托管状态。你可以忽略它
自动回复:
#听msg谁给我发的消息@ it chat . msg _ register(income _ msg)#通过msg变量的返回值定位发送用户def text _ reply(msg):#打印获取的信息# print(msg) itchat.send(您发送的:\%s\\ N微信目前托管在python中,我会将您的消息转发到您的手机上。谢谢“% (msg [text]),to username=msg [from username])。这里主要关注装修工的使用。其实我们还是可以监控图片,视频,文档之类的。简单来说,这只是文本,所以如果对方发来图片,会以转码格式打印出来。
群聊发送消息:
def sendchatroomssg(gname,Context): #获取群的所有相关信息(注意最好将群聊保存到通讯录)my room=it chat . Get _ chat rooms(update=true)# my room=it chat . Get _ chat rooms()#定义全局变量(或not)全局用户名#传入指定的群名进行搜索。搜索的原因,因为群成员的名字信息也是hxdyj my room=it chat . search _ chat rooms(name=gname)for room in my room:# print(room)#遍历所有以NickName为键值的信息匹配群名if room[ NickName ]==gname:username=room[ username ]#获取群名的唯一标识,发送信息。It chat.send _ msg(上下文,用户名)else: print(未找到组)。在群里发消息的主要麻烦是找群名和相关信息,所以你要确切的知道get_chatrooms()和search_chatrooms()。
登录微信并保持登录状态:
#登录微信enableCmdQR是指当完整的命令行界面能弹出文字绘制的二维码#它能使你扫码登录,hotReload是指不需要扫码it chat . auto _ log in(enableCmdQR=true,hot reload=true) #调用函数发送群发消息sendchatroomsg(gname,context) #保持登录状态itchat.run()
最后:
事实上,它可以变得更有趣。引入时间模块可以做成定时发送信息的装置。今天我也尝试了做屏幕模式,但是在使用while无限循环发送群发消息的时候,没有办法有一个进程来处理阻塞状态下的“自动回复”。我的解决方案是导入OS模块resume fork()建立多进程。有兴趣的可以试试。
我把源代码放在GitHub上了。有兴趣可以查一下源代码。
微信扫一扫关注微信官方账号。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。