在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()

在这里进行微信配置

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

相关推荐
bobz9652 分钟前
ovs patch port 对比 veth pair
后端
Asthenia041212 分钟前
Java受检异常与非受检异常分析
后端
uhakadotcom25 分钟前
快速开始使用 n8n
后端·面试·github
JavaGuide32 分钟前
公司来的新人用字符串存储日期,被组长怒怼了...
后端·mysql
bobz96543 分钟前
qemu 网络使用基础
后端
Asthenia04121 小时前
面试攻略:如何应对 Spring 启动流程的层层追问
后端
Asthenia04121 小时前
Spring 启动流程:比喻表达
后端
Asthenia04122 小时前
Spring 启动流程分析-含时序图
后端
ONE_Gua2 小时前
chromium魔改——CDP(Chrome DevTools Protocol)检测01
前端·后端·爬虫
致心2 小时前
记一次debian安装mariadb(带有迁移数据)
后端