Python的WeRoBot框架开发公众号

简介: Python的WeRoBot框架开发公众号

最终的效果图:



20200303003159733.jpg



完整代码:


#coding:utf-8
# Filename:return_message5.py
# 被关注回复'Hello World!'
# 收到 笑话 回复糗百笑话,收到收到 电影 回复电影天堂最新电影,
# 收到 blog 回复我的简书博客,收到 音乐 回复一首音乐
# 收到 fight 回复一句话
from werobot import WeRoBot
import random
from werobot.replies import ArticlesReply, Article
robot = WeRoBot(token='your_token')
# 明文模式不需要下面三项
#robot.config["APP_ID"]=''
#robot.config["APP_SECRET"]=''
#robot.config['ENCODING_AES_KEY'] = ''
# 被关注
@robot.subscribe
def subscribe(message):
    return '''Hello World!
And nice to meet you.
:)
'''
# 读取文档里的笑话,把前三行存在 data2 里,字符串太长公众号会报错
def joke_data():
    filename = 'qiushibaike.txt'
    f = open(filename, 'r')
    data = f.read()
    f.close()
    data1 = data.split()
    data2 = ''
    for data_i in data1[0:3]:
        data2 += data_i + '\n' + '\n'
    return data2
# 读取文档里的电影名称
def movie_name():
    filename = 'movies_name.txt'
    f = open(filename, 'r')
    data = f.read()
    f.close()
    return data
# 从三首音乐里随机选一首
def music_data():
    music_list = [
            ['童话镇','陈一发儿','https://e.coka.la/wlae62.mp3','https://e.coka.la/wlae62.mp3'],
            ['都选C','缝纫机乐队','https://files.catbox.moe/duefwe.mp3','https://files.catbox.moe/duefwe.mp3'],
            ['精彩才刚刚开始','易烊千玺','https://e.coka.la/PdqQMY.mp3','https://e.coka.la/PdqQMY.mp3']
            ]
    num = random.randint(0,2)
    return music_list[num]
# 读取 fight.txt 里的句子,随机返回一句
def get_fighttxt():
    filename = 'fight.txt'
    f = open(filename, 'r')
    data = f.read()
    f.close()
    data1 = data.split()
    max_num = len(data1) - 1
    num = random.randint(0, max_num)
    data2 = data1[num]
    return data2
# 匹配 笑话 回复糗百笑话
@robot.filter('笑话')
def joke(message):
    data = joke_data()
    return data
#如果用
#@robot.text
#def joke(message):
#    if message.content == "笑话":
#会报错
#UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
# 匹配 电影 回复电影名称
@robot.filter('电影')
def movie(message):
    name = movie_name()
    return name
# blog 回复个人博客
@robot.filter('blog')
def blog(message):
    reply = ArticlesReply(message=message)
    article = Article(
        title="Lansonli",
        description="Lansonli个人博客",
        img="https://avatar.csdnimg.cn/0/0/A/3_xiaoweite1_1568355559.jpg",
        url="https://lansonli.blog.csdn.net"
    )
    reply.add_article(article)
    return reply
# 匹配 音乐 回复一首歌
@robot.filter('音乐')
def music(message):
    music1 = music_data()
    return music1
# 匹配 fight 回复一句话
@robot.filter('fight')
def fight(message):
    data = get_fighttxt()
    return data
# 文本消息返回原文
@robot.text
def echo(message):
    return message.content
# 其他消息返回
@robot.handler
def hello(message):
    return '(O_o)??'
robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 80
robot.run()


分步讲解:



公众号分为企业号、服务号和订阅号,我们这里用订阅号,适用于个人


注册订阅号和购买服务器的过程不再赘述



1.验证服务器


在公众号后台配置服务器


image.png


填入自己的服务器地址(URL)和Token:


服务器地址可以是IP,也可以是域名,但必须以http://或https://开头,分别支持80端口和443端口。


Token随便填,一会代码里用得到。


选择明文模式,先不提交。


服务器上部署代码


先安装werobot


pip install WeRoBot


创建 hello_world.py,代码如下:


#coding:utf-8
# Filename:hello_world.py
# 验证服务器,并且收到的所有消息都回复'Hello World!'
import werobot
robot = werobot.WeRoBot(token='your token')
# @robot.handler 处理所有消息
@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()


'your token' 处填你的Token,然后运行



python hello_world.py


返回公众号的基本配置页面,点击提交,如果没有报错就验证成功了,最后点击“启用配置”



2.处理文本消息


# @robot.text 只处理文本消息
@robot.text
def echo(message):
    return '111'


3.匹配文本的两种方式


# 第一种方式
@robot.text
def joke(message):
    if message.content == "joke":
# 如果把"joke"换成"笑话"就会报错,这种方式不能匹配中文
# 第二种方式
@robot.filter('笑话')
def joke(message):
# 用 @robot.filter() 可以匹配中文


4.读取本地文档


# 以只读的方式,读取同目录文档 movies_name.txt 的内容
filename = 'movies_name.txt'
f = open(filename, 'r')
data = f.read()
f.close()
return data


5.回复图文消息


# blog 回复个人博客
from werobot.replies import ArticlesReply, Article
@robot.filter('blog')
def blog(message):
    reply = ArticlesReply(message=message)
    article = Article(
        title="v1coder",  #标题
        description="我的个人博客",  #简介
        img="https://*****.png",  #图片链接
        url="https://www.jianshu.com/u/7cb04d09491e"  #点击图片后跳转链接
    )
    reply.add_article(article)
    return reply

6.回复音乐


# 匹配 音乐 回复一首歌
@robot.filter('音乐')
def music(message):
    # 返回一个长度为四的列表
    return [
        '都选C',
        '缝纫机乐队',
        'https://files.catbox.moe/duefwe.mp3',
        'https://files.catbox.moe/duefwe.mp3'
    ]


分布讲解完毕。


最后:



结束当前代码运行:Ctrl + C


使程序在Linux下后台运行 (关掉终端继续让程序运行)的方法:



输入命令:


nohup 你的shell命令 &

回车,使终端回到shell命令行

停止程序在 Linux 后台运行的方法:


ps x  # 显示所有进程
kill 进程号  # 结束进程


公众号测试账号,拥有所有权限


全局返回码说明,可以根据返回码信息调试接口,排查错误。


目录
相关文章
|
1月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
56 7
|
1月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
4天前
|
人工智能 测试技术 数据处理
通义灵码 2.0 体验报告:Deepseek 加持下的 Python 开发之旅
通义灵码 2.0 体验报告:Deepseek 加持下的 Python 开发之旅
57 11
|
1月前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
111 34
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
8天前
|
API Python
python泛微e9接口开发
通过POST请求向指定IP的API注册设备以获取`secrit`和`spk`。请求需包含`appid`、`loginid`、`pwd`等头信息。响应中包含状态码、消息及`secrit`(注意拼写)、`secret`和`spk`字段。示例代码使用`curl`命令发送请求,成功后返回相关信息。
30 5
|
22天前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
137 9
|
1月前
|
JSON 安全 中间件
Python Web 框架 FastAPI
FastAPI 是一个现代的 Python Web 框架,专为快速构建 API 和在线应用而设计。它凭借速度、简单性和开发人员友好的特性迅速走红。FastAPI 支持自动文档生成、类型提示、数据验证、异步操作和依赖注入等功能,极大提升了开发效率并减少了错误。安装简单,使用 pip 安装 FastAPI 和 uvicorn 即可开始开发。其优点包括高性能、自动数据验证和身份验证支持,但也存在学习曲线和社区资源相对较少的缺点。
84 15
|
2月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
333 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
1月前
|
关系型数据库 API 数据库
Python流行orm框架对比
Python中有多个流行的ORM框架,如SQLAlchemy、Django ORM、Peewee、Tortoise ORM、Pony ORM、SQLModel和GINO。每个框架各有特点,适用于不同的项目需求。SQLAlchemy功能强大且灵活,适合复杂项目;Django ORM与Django框架无缝集成,易用性强;Peewee轻量级且简单,适合小型项目;Tortoise ORM专为异步框架设计;Pony ORM查询语法直观;SQLModel结合Pydantic,适合FastAPI;GINO则适合异步环境开发。初学者推荐使用Django ORM或Peewee,因其易学易用。

热门文章

最新文章

推荐镜像

更多