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

在这里进行微信配置

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

相关推荐
qq_17448285755 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
锅包肉的九珍6 小时前
Scala的Array数组
开发语言·后端·scala
心仪悦悦6 小时前
Scala的Array(2)
开发语言·后端·scala
2401_882727576 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
心仪悦悦7 小时前
Scala中的集合复习(1)
开发语言·后端·scala
代码小鑫7 小时前
A043-基于Spring Boot的秒杀系统设计与实现
java·开发语言·数据库·spring boot·后端·spring·毕业设计
真心喜欢你吖7 小时前
SpringBoot与MongoDB深度整合及应用案例
java·spring boot·后端·mongodb·spring
激流丶7 小时前
【Kafka 实战】Kafka 如何保证消息的顺序性?
java·后端·kafka
uzong8 小时前
一个 IDEA 老鸟的 DEBUG 私货之多线程调试
java·后端
飞升不如收破烂~9 小时前
Spring boot常用注解和作用
java·spring boot·后端