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

在这里进行微信配置

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

相关推荐
闲猫2 小时前
go orm GORM
开发语言·后端·golang
丁卯4042 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
bing_1586 小时前
简单工厂模式 (Simple Factory Pattern) 在Spring Boot 中的应用
spring boot·后端·简单工厂模式
天上掉下来个程小白6 小时前
案例-14.文件上传-简介
数据库·spring boot·后端·mybatis·状态模式
Asthenia04127 小时前
基于Jackson注解的JSON工具封装与Redis集成实战
后端
编程星空7 小时前
css主题色修改后会多出一个css吗?css怎么定义变量?
开发语言·后端·rust
程序员侠客行8 小时前
Spring事务原理 二
java·后端·spring
dmy8 小时前
docker 快速构建开发环境
后端·docker·容器
sjsjsbbsbsn8 小时前
Spring Boot定时任务原理
java·spring boot·后端
计算机毕设指导69 小时前
基于Springboot学生宿舍水电信息管理系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·maven