python wechaty 微信、机器人创建

在python环境下接入wechaty框架,实现ding-dong案例,用微信给特定微信号发送ding,然后特定微信号识别ding最后自动回复dong这个简单案例。

实现路程概略:

想要实现 发送 ding->识别ding->回复dong的这个过程的大概路径是:

首先注册获取token;

然后安装docker运行wechaty镜像;

之后用微信扫描wechaty框架提供的二维码,将微信与框架进行了绑定;

最后运行python程序与wechaty镜像连接获取微信信息,通过python程序识别微信信息中是否有ding,如果有ding则回复dong。

首先获取token:

登录网站 PadLocal ,网站很简单,用手机号注册登录。token有试用模式,可以免费试用一周。

安装docker:

 docker安装就是常规安装这个在网络上很多不过说了,说一个我遇到的问题,我一开始安装的是windows桌面版的docker配置了一些内容安装成功了,但是wechaty镜像运行都不成功一直无法获取二维码,最后没办法用了公司的ubuntu系统的测试服务器(因为我这个是公司任务,大家量力而行)安装成功了,如果没有服务器的,可以试试用ubuntu的虚拟环境来安装docker.

运行镜像:

doker安装成功后,就可以运行命令安装运行镜像,命令如下:

docker run -it -d --name WECHAYT_NAME -e WECHATY_LOG="verbose" -e WECHATY_PUPPET="wechaty-puppet-padlocal" -e WECHATY_PUPPET_PADLOCAL_TOKEN="TOKEN" -e WECHATY_PUPPET_SERVER_PORT="8790" -e WECHATY_TOKEN="WECHATY_TOKEN" -p "8790:8790" wechaty/wechaty:0.65

参数解释:

WECHAYT_NAME:你的镜像的名字,按照你的规律起一个就可以;

TOKEN:你注册获取的wechaty的token;

WECHATY_TOKEN:一个唯一值,我是找了一串很生僻很长的字符串然后进行MD5加密,网上有很多在线MD5加密;

端口后映射:WECHATY_PUPPET_SERVER_PORT和“ -p”后面的值都是端口号,虚拟机端口号和服务器端口号的映射,这个属于docker的设置网上很多可查,我是服务器安装的,找一个服务器没用的直接映射了;

wechaty:0.65:这个是wechaty的版本,我找了一下一般都用这个,这个版本比较稳定没有问题,至少我没有遇到关于这个版本的问题;

遇到问题:

运行镜像的问题就是那个一开始我安装在自己的电脑上Windows的环境一直运行失败。

再有问题就是网络的问题了,网络一开始不好,在没有已安装wechaty镜像的情况下,运行这个命令后是需要安装依赖包的,而且是好几个所以网络也很重要。

再有就是ubuntu的数据源问题了,这个我没有遇到,但是我看其它文档中有讲到,大家遇到问题了可以向这个方向想一想。

微信与wechaty框架绑定:

docker 和 wechaty镜像完成后,在docker安装的系统中运行命令:

docker ps 

这个命令查看wechaty镜像的 ID,

docker logs 镜像ID

这个命令打印日志,日志中有镜像绑定用的二维码地址,一般在日志的最后几行

 就是 QR code Image: https://  这一行,将链接地址复制到浏览器,显示的就是二维码。

用微信扫描这个二维码,微信会提示登录pad版本,同意登录。

这样这个微信就和wechaty框架绑定在了一起,当有其它微信对这个绑定的微信发消息时,消息就会被wechaty框架获取。

运行python程序:

下载wechaty依赖包  

pip install wechaty == 0.8  

作为案例,这个程序非常简单

from wechaty import Wechaty, Message, WechatyPlugin
import asyncio
import os

# 填入的还是你前面申请的token
os.environ["WECHATY_PUPPET_SERVICE_TOKEN"] = "puppet_padlocal_xxxxx"
# docker运行的主机地址+端口
os.environ["WECHATY_PUPPET_SERVICE_ENDPOINT"] = "ip地址:端口号"

bot = Wechaty()


class DingDongPlugin(WechatyPlugin):
    async def on_message(self, msg: Message) -> None:
        if msg.text() == "ding":
            await msg.say("dong")


if __name__ == '__main__':
    bot.use([
        DingDongPlugin()
    ])
    asyncio.run(bot.start())
问题:

版本问题:这里踩了一个坑,就是版本的问题,我一开始安装的最新版本但是启动总失败,后来换了 0.8 这个稳定的版本就可以了。

刷新问题:python程序运行后 wechaty框架的二维码会持续刷新,一开始扫码绑定之后收到 ding不会回复dong ,反复扫码绑定多次后可以实现自动回复dong,当实现自动回复dong后 二维码的刷新就没有再影响程序的使用就不需要重复扫码绑定了可以一直可以稳定的 ding->dong了。

好了到这里没有意外(大概率会有意外)就可以实现 ding->dong 了。

用其它微信号给和wechaty框架绑定在一起的微信发 ding ,它就可有自动回复 dong了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,我可以为您提供有关使用 Python 编写微信机器人的一些基本信息。 首先,要使用 Python 编写微信机器人,您需要使用微信开发者工具包(wechaty),这是一个支持多种平台的开源聊天机器人框架。 以下是一些创建微信机器人的步骤: 1. 安装 Python 和 wechaty:您可以使用 pip 包管理器在命令行中安装 wechaty。 2. 配置微信账户:您需要通过扫描二维码登录微信账户。注意,使用机器人账户可能违反微信服务条款。 3. 编写机器人:使用 Python 编写机器人,可以使用 wechaty 提供的 API 接口。例如,您可以创建一个名为 MyBot 的机器人,并在其中实现 on_message() 方法来处理接收到的消息: ```python from wechaty import ( Contact, Message, Wechaty, ) async def on_message(msg: Message): if msg.text() == 'hello': await msg.say('Hello World!') bot = Wechaty() bot.on('message', on_message) bot.start() ``` 4. 运行机器人:通过运行上面的代码来启动机器人,并保持其运行状态。您还可以使用 Docker 容器来运行机器人。 请注意,使用机器人账户可能违反微信服务条款。因此,如果您要使用机器人账户,请确保遵守微信的规定,以避免被禁止使用微信账户。 ### 回答2: 使用 Python 编写一个微信机器人可以实现自动回复消息、发送群发消息、自动接收红包等功能。 首先,我们需要安装微信机器人库 wxpy。可以使用 pip 来安装 wxpy:pip install -U wxpy。 然后,我们需要创建一个 wxpy 机器人实例。可以使用如下代码创建一个机器人实例并登录: ```python from wxpy import * # 创建机器人实例 bot = Bot() # 进入机器人监听状态 bot.join() ``` 上述代码会生成一个机器人实例并登录到微信。 接下来,我们可以为我们的机器人添加自动回复功能。可以使用如下代码实现自动回复功能: ```python from wxpy import * # 创建机器人实例 bot = Bot() # 使用机器人示例自动回复消息 @bot.register() def auto_reply(msg): return '您好,我是机器人小助手,有什么可以帮到您的吗?' # 进入机器人监听状态 bot.join() ``` 上述代码中的 `auto_reply` 函数是一个装饰器,用于接收来自任何用户的消息并自动回复。 除了自动回复,我们还可以实现发送群发消息的功能。可以使用如下代码实现发送消息到指定的群: ```python from wxpy import * # 创建机器人实例 bot = Bot() # 发送群发消息 group = bot.groups().search('群聊名称')[0] group.send('大家好,我是机器人小助手。') # 进入机器人监听状态 bot.join() ``` 上述代码中通过 `group.send` 方法实现向指定群发送消息的功能。 此外,我们还可以使用如下代码实现自动接收红包的功能: ```python from wxpy import * # 创建机器人实例 bot = Bot() # 自动接收红包 @bot.register() def auto_accept_red_packet(msg): if '红包' in msg.text: msg.receive() # 进入机器人监听状态 bot.join() ``` 上述代码中的 `auto_accept_red_packet` 函数是一个装饰器,用于自动接收包含“红包”关键字的消息。 以上是使用 Python 编写微信机器人的一些基本功能,你可以根据自己的需求进行扩展和定制。 ### 回答3: 使用Python编写一个微信机器人可以通过使用itchat库来实现。itchat是一个基于Python微信个人号接口,可以实现微信登录、消息获取和发送。 首先,我们需要安装itchat库。在命令行中使用如下命令进行安装: pip install itchat 接下来,我们可以使用以下代码编写一个简单的微信机器人: ```python import itchat # 登录微信 itchat.auto_login() # 监听好友消息 @itchat.msg_register(itchat.content.TEXT) def reply_friend(msg): content = msg['Text'] # 获取收到的消息内容 # 判断消息内容,进行回复 if content == '你好': return '你好,我是微信机器人!' elif content == '时间': import time return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) # 返回当前时间 # 开始监听消息,运行机器人 itchat.run() ``` 上述代码首先使用itchat.auto_login()进行微信登录,然后通过@itchat.msg_register装饰器注册回调函数reply_friend,该函数用于监听和回复好友消息。函数内部通过msg参数获取收到的消息内容,然后根据消息内容进行判断,并返回相应的回复。 在上述代码中,如果收到消息内容为"你好",则回复"你好,我是微信机器人!";如果收到消息内容为"时间",则回复当前时间。 最后,使用itchat.run()开始监听消息,即可运行微信机器人。 通过以上代码,我们可以实现一个简单的微信机器人,当收到指定的消息时可以给出相应的回复。当然,我们还可以根据需求对机器人进行更加复杂的功能扩展,如获取天气、翻译等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值