您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

基于MIT协议,一个开源的Python微信公众号开发框架——WeRoBot

时间:2020-05-09 12:44:58  来源:  作者:

介绍

WeRoBot 是一个微信公众号开发框架。基于MIT协议,Python作为开发语言!


基于MIT协议,一个开源的Python微信公众号开发框架——WeRoBot

 


Github

https://github.com/offu/WeRoBot

使用

最简单的Hello World, 会给收到的每一条信息回复 Hello World

import werobot

robot = werobot.WeRoBot(token='tokenhere')

@robot.handler
def hello(message):
    return 'Hello World!'

# 让服务器监听在 0.0.0.0:80
robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 80
robot.run()
  • 消息处理

WeRoBot 会解析微信服务器发来的消息, 并将消息转换成成 Message 或者是 Event 。 Message 表示用户发来的消息,如文本消息、图片消息; Event 则表示用户触发的事件, 如关注事件、扫描二维码事件。 在消息解析、转换完成后, WeRoBot 会将消息转交给 Handler 进行处理,并将 Handler 的返回值返回给微信服务器。

在刚才的 Hello World 中, 我们编写的

@robot.handler
def hello(message):
    return 'Hello World!'

就是一个简单的 Handler , @robot.handler 意味着 robot 会将所有接收到的消息( 包括 Message 和 Event ) 都转交给这个 Handler 来处理。 当然, 你也可以编写一些只能处理特定消息的 Handler

# @robot.text 修饰的 Handler 只处理文本消息
@robot.text
def echo(message):
    return message.content

# @robot.image 修饰的 Handler 只处理图片消息
@robot.image
def img(message):
    return message.img
  • 使用 Session 记录用户状态

WeRoBot 提供了 Session 功能, 可以让你方便的记录用户状态。 比如, 这个 Handler 可以判断发消息的用户之前有没有发送过消息

@robot.text
def first(message, session):
    if 'first' in session:
        return '你之前给我发过消息'
    session['first'] = True
    return '你之前没给我发过消息'

Session 功能默认开启, 并使用 SQLite 存储 Session 数据

  • 创建自定义菜单

自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot.client.Client.create_menu() 来创建自定义菜单。 在使用 Client 之前, 我们需要先提供微信公众平台内的 AppID 和 AppSecret

from werobot import WeRoBot
robot = WeRoBot()
robot.config["APP_ID"] = "你的 AppID"
robot.config["APP_SECRET"] = "你的 AppSecret"

client = robot.client

然后, 我们就可以创建自定义菜单了

client.create_menu({
    "button":[{
         "type": "click",
         "name": "今日歌曲",
         "key": "music"
    }]
})

注意以上代码只需要运行一次就可以了。在创建完自定义菜单之后, 我们还需要写一个 Handler 来响应菜单的点击操作

@robot.key_click("music")
def music(message):
    return '你点击了“今日歌曲”按钮'

以上是最基本的使用方法,详细如何使用建议结合微信公众号开发文档以及WeRoBot文档



Tags:WeRoBot   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
介绍WeRoBot 是一个微信公众号开发框架。基于MIT协议,Python作为开发语言! Githubhttps://github.com/offu/WeRoBot使用最简单的Hello World, 会给收到的每一条信息回复 Hello...【详细内容】
2020-05-09  Tags: WeRoBot  点击:(176)  评论:(0)  加入收藏
一、准备环境1. 云主机和域名云主机推荐使用阿里云或者腾讯云的ecs主机,如果有学生证的话都很便宜。域名国内的话,在阿里云或者腾讯云购买都可以,国内域名都需要备案,备案按照文...【详细内容】
2020-05-06  Tags: WeRoBot  点击:(43)  评论:(0)  加入收藏
▌简易百科推荐
大家好,我是菜鸟哥,今天跟大家一起聊一下Python4的话题! 从2020年的1月1号开始,Python官方正式的停止了对于Python2的维护。Python也正式的进入了Python3的时代。而随着时间的...【详细内容】
2021-12-28  菜鸟学python    Tags:Python4   点击:(1)  评论:(0)  加入收藏
学习Python的初衷是因为它的实践的便捷性,几乎计算机上能完成的各种操作都能在Python上找到解决途径。平时工作需要在线学习。而在线学习的复杂性经常让人抓狂。费时费力且效...【详细内容】
2021-12-28  风度翩翩的Python    Tags:Python   点击:(1)  评论:(0)  加入收藏
Python 是一个很棒的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了在开发人员职位中和跨行业的数据科学职位中的实用性。整个 Python 及其库的生态系统使...【详细内容】
2021-12-27  IT资料库    Tags:Python 库   点击:(2)  评论:(0)  加入收藏
菜单驱动程序简介菜单驱动程序是通过显示选项列表从用户那里获取输入并允许用户从选项列表中选择输入的程序。菜单驱动程序的一个简单示例是 ATM(自动取款机)。在交易的情况下...【详细内容】
2021-12-27  子冉爱python    Tags:Python   点击:(4)  评论:(0)  加入收藏
有不少同学学完Python后仍然很难将其灵活运用。我整理15个Python入门的小程序。在实践中应用Python会有事半功倍的效果。01 实现二元二次函数实现数学里的二元二次函数:f(x,...【详细内容】
2021-12-22  程序汪小成    Tags:Python入门   点击:(32)  评论:(0)  加入收藏
Verilog是由一个个module组成的,下面是其中一个module在网表中的样子,我只需要提取module名字、实例化关系。module rst_filter ( ...); 端口声明... wire定义......【详细内容】
2021-12-22  编程啊青    Tags:Verilog   点击:(8)  评论:(0)  加入收藏
运行环境 如何从 MP4 视频中提取帧 将帧变成 GIF 创建 MP4 到 GIF GUI ...【详细内容】
2021-12-22  修道猿    Tags:Python   点击:(6)  评论:(0)  加入收藏
面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。类(Class)和对象(Object)类是用来描述具有相同属性和方法对象的集合。对象是类的具体实例。比如,学生都有...【详细内容】
2021-12-22  我头秃了    Tags:python   点击:(9)  评论:(0)  加入收藏
所谓内置函数,就是Python提供的, 可以直接拿来直接用的函数,比如大家熟悉的print,range、input等,也有不是很熟,但是很重要的,如enumerate、zip、join等,Python内置的这些函数非常...【详细内容】
2021-12-21  程序员小新ds    Tags:python初   点击:(5)  评论:(0)  加入收藏
Hi,大家好。我们在接口自动化测试项目中,有时候需要一些加密。今天给大伙介绍Python实现各种 加密 ,接口加解密再也不愁。目录一、项目加解密需求分析六、Python加密库PyCrypto...【详细内容】
2021-12-21  Python可乐    Tags:Python   点击:(8)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条