在CentOS 7上部署nginx以及使用werobot实现微信公众号自动回复

随着微信公众号的广泛应用,越来越多的开发者开始利用这一平台为自己的项目或服务增加互动性和功能性。本文将详细介绍如何在CentOS 7系统上部署Python开发环境、Nginx服务器,并使用werobot框架实现微信公众号的订阅回复和关键词回复功能,同时搭建一个Nginx图片服务器来支持图片消息的发送。

一、部署Python开发环境

  1. 打开终端,使用yum包管理器安装Python 3:

    sudo yum install -y python3
    sudo yum install -y python3-pip

安装完成后,你可以通过python3pip3命令来运行Python 3程序或安装第三方库。

  1. 接下来,使用pip3安装werobot:
bash 复制代码
# pip3 install werobot

二、搭建Nginx服务器

Nginx是一个高性能的HTTP和反向代理服务器,我们可以使用它来托管静态文件或作为反向代理来转发请求到我们的Python应用。

  1. 安装Nginx依赖环境:
r 复制代码
yum install gcc-c++ 
yum install -y openssl openssl-devel
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

2.安装nginx

下载nginx压缩包,找个文件夹放压缩包

arduino 复制代码
wget https://nginx.org/download/nginx-1.14.0.tar.gz

解压压缩包并进入目录

bash 复制代码
tar -zxvf nginx-1.14.0.tar.gz 
cd nginx-1.14.0/

使用nginx默认配置并编译安装

go 复制代码
./configure
make 
make install

进入 /usr/local/nginx/sbin 目录执行启动命令并查看是否启动成功

bash 复制代码
./nginx
ps -ef | grep nginx

网页访问 http://你的ip地址:80 即可看到nginx的欢迎页面

3.创建一个图片服务器 在这个目录下创建一个images.conf文件

文件的代码为,同时把你的图片资源放到指定目录下

server 复制代码
    listen 80;  
    server_name _; # 使用 _ 匹配任何域名  

    location /images/ {  
        root /usr/share/nginx/html/images; # 你的网站根目录,图片目录应该是这个目录下的子目录  
        try_files $uri $uri/ =404; # 尝试直接访问文件,如果文件不存在则返回404  
    }  

    # 其他配置...  

    # 错误处理页面(可选)  
    error_page 404 /404.html;  
    location = /404.html {  
        root /path/to/your/webroot; # 你的网站根目录  
    }  
}

保存后重新运行nginx

bash 复制代码
sudo ./nginx -s reload

在浏览器上输入:IP地址+:端口号(默认80)+/images/img.jpg 就能访问到图片了

三、python实现公众号自动回复

使用werobot完成公众号自动回复逻辑

python 复制代码
import random
import werobot
from werobot.replies import ArticlesReply, Article, ImageReply, TextReply, MusicReply
robot=werobot.WeRoBot(token='你的微信token')
# 订阅后的回复
@robot.subscribe
def subscribe():
    return "***欢迎关注公众号[愉快][愉快][愉快]***\n" \
           "***输入任意内容开始与我聊天!\n" \
           "***输入'博客'关注我的博客!\n" \
           "***输入'音乐'推荐一首音乐!\n"
# 关键字 博客 回复
@robot.filter('博客')
def blog(message):
    reply = ArticlesReply(message=message)
    article = Article(
        title="Python",
        description="我的个人博客",
        img="https://werobot.readthedocs.io/zh_CN/latest/_static/qq.png",
        url="https://juejin.cn/user/3283580644764608"
    )
    reply.add_article(article)
    return reply
@robot.image
def blog(message,session):
    print("\n"+message.MediaId)
    changdu = str(len(session))
    session[changdu] = message.MediaId
    reply = ImageReply(message=message, media_id=message.MediaId)
    return reply
# 随机一首音乐
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]
@robot.filter('音乐')
def music(message):
    return music_data()
robot.config['HOST']='0.0.0.0'
robot.config['PORT']=80
robot.run()

在这里进行微信配置

把你的代码放到服务器上运行,然后就可以对公众号进行测试了

相关推荐
isolusion2 小时前
Springboot的创建方式
java·spring boot·后端
zjw_rp3 小时前
Spring-AOP
java·后端·spring·spring-aop
TodoCoder3 小时前
【编程思想】CopyOnWrite是如何解决高并发场景中的读写瓶颈?
java·后端·面试
凌虚4 小时前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
机器之心4 小时前
图学习新突破:一个统一框架连接空域和频域
人工智能·后端
.生产的驴5 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
顽疲5 小时前
springboot vue 会员收银系统 含源码 开发流程
vue.js·spring boot·后端
机器之心5 小时前
AAAI 2025|时间序列演进也是种扩散过程?基于移动自回归的时序扩散预测模型
人工智能·后端
hanglove_lucky6 小时前
本地摄像头视频流在html中打开
前端·后端·html
皓木.8 小时前
(自用)配置文件优先级、SpringBoot原理、Maven私服
java·spring boot·后端