开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
wxBot首页、文档和下载 - Python 网页微信 API - 开源中国社区
全部项目分类
Apache
Python 查看源码»
跨平台
分享
收藏
225 人收藏
收录时间:2017-04-13
wxBot 详细介绍

wxBot 是用 Python 包装 Web 微信协议实现的微信机器人框架。

目前的消息支持情况:

  •  群消息

    •  文本

    •  图片

    •  地理位置

    •  个人名片

    •  语音

    •  动画

    •  语音电话

    •  红包

  •  联系人消息

    •  文本

    •  图片

    •  地理位置

    •  个人名片

    •  语音

    •  小视频

    •  动画

    •  视频电话

    •  红包

    •  转账

  •  消息发送

    •  文本

    •  图片

    •  文件

1 环境与依赖

此版本只能运行于Python 2环境 。

wxBot 用到了Python requests , pypng , Pillow 以及 pyqrcode 库。

使用之前需要所依赖的库:

pip install requests
pip install pyqrcode
pip install pypng
pip install Pillow

2 快速开发

利用 wxBot 最简单的方法就是继承WXBot类并实现 handle_msg_all 或者 schedule 函数,然后实例化子类并调用 run 方法 。

2.1 代码

以下的代码对所有来自好友的文本消息回复文本消息 hi 、图片消息 1.png 以及文件消息 1.png , 并不断向好友 tb 发送文本 schedule 。

handle_msg_all 函数用于处理收到的每条消息,而 schedule 函数可以做一些任务性的工作(例如不断向好友推送信息或者一些定时任务)。

#!/usr/bin/env python
# coding: utf-8
import time
from wxbot import *
class MyWXBot(WXBot):
    def handle_msg_all(self, msg):
        if msg['msg_type_id'] == 4 and msg['content']['type'] == 0:
            self.send_msg_by_uid(u'hi', msg['user']['id'])
            self.send_img_msg_by_uid("img/1.png", msg['user']['id'])
            self.send_file_msg_by_uid("img/1.png", msg['user']['id'])
    def schedule(self):
        self.send_msg(u'tb', u'schedule')
        time.sleep(1)
def main():
    bot = MyWXBot()
    bot.DEBUG = True
    bot.run()
if __name__ == '__main__':
    main()

2.2 运行

直接用 python 运行代码(如运行测试代码 test.py ):

python test.py

2.3 登录微信

程序运行之后,会在当前目录下生成二维码图片文件 qr.png 并自动打开,用微信扫描此二维码并按操作指示确认登录网页微信。

如果运行在Linux下,还可以通过设置 WXBot 对象的 conf['qr'] 为 tty 的方式直接在终端打印二维码(此方法只能在Linux终端下使用),效果如下:

login_on_ubuntu

3 效果展示

测试代码 test.py 的运行效果:

向机器人发送消息

后台

4 接口

4.1 handle_msg_all

handle_msg_all 函数的参数 msg 是代表一条消息的字典。字段的内容为:

4.2 消息类型表

4.3 数据类型表

4.4 群文本消息

由于群文本消息中可能含有@信息,因此群文本消息的 content 字典除了含有 type 与 data 字段外,还含有 detail 与 desc 字段。

4.5 WXBot对象属性

WXBot 对象在登录并初始化之后,含有以下的可用数据:

各字段内容为:

4.6 WXBot对象方法

WXBot 对象还含有一些可以利用的方法

5 群聊机器人示例

bot.py 用 图灵机器人 API 以及 wxBot 实现了一个自动回复机器人.

此机器人会回复来自联系人的消息,以及群里@此账号的消息。

并且本帐号可以通过发送 退下 、 走开 、 关闭 、 关掉 、 休息 、 滚开 来关闭机器人的自动回复。

也可以通过发送 出来 、 启动 、 工作 来再次开启机器人的自动回复。

群聊时需要将对应的群保存到联系人列表。

群聊实现效果:

群聊

群聊后台

bot.py 的运行方法:

  • 要接入图灵机器人API时:


  1. 在图灵机器人官网注册账号,申请图灵key: 图灵key申请地址

  2. 在 bot.py 文件所在目录下新建 conf.ini 文件,内容为:(key字段内容为申请到的图灵key)

[main]    
key=1d2678900f734aa0a23734ace8aec5b1
  1. 运行 bot.py

python bot.py
  • 不接入图灵机器人API时(此时机器人对联系人消息以及群里@自己的消息统一回复 知道了 ):

  1. 运行 bot.py

python bot.py

大家对 wxBot 的评论 (全部 9 条评论)
{{repayCom.userName}}
wjts
能否登入新手机验证过 请教下
swk180
尝试了,不行,如果一直聊天只能坚持1分钟时间,过了一分钟就收不到信息了
codingxyz
看起来挺好玩的
ChangHaoWei
东西可以用,代码很难看。
zb1489996965329
这么说吧,可以用,而且还不错。做出来简单,还让人有成就感。那些说不能用的人,你们真的就不适合编程了。这么基础的东西都弄不好,还怪作者?
顶部