随着微信公众号的广泛应用,越来越多的开发者开始利用这一平台为自己的项目或服务增加互动性和功能性。本文将详细介绍如何在CentOS 7系统上部署Python开发环境、Nginx服务器,并使用werobot框架实现微信公众号的订阅回复和关键词回复功能,同时搭建一个Nginx图片服务器来支持图片消息的发送。
一、部署Python开发环境
- 打开终端,使用yum包管理器安装Python 3:
sudo yum install -y python3
sudo yum install -y python3-pip
安装完成后,你可以通过python3和pip3命令来运行Python 3程序或安装第三方库。
- 接下来,使用pip3安装werobot:
# pip3 install werobot
二、搭建Nginx服务器
Nginx是一个高性能的HTTP和反向代理服务器,我们可以使用它来托管静态文件或作为反向代理来转发请求到我们的Python应用。
- 安装Nginx依赖环境:
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压缩包,找个文件夹放压缩包
wget https://nginx.org/download/nginx-1.14.0.tar.gz
解压压缩包并进入目录
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0/
使用nginx默认配置并编译安装
./configure
make
make install
进入 /usr/local/nginx/sbin 目录执行启动命令并查看是否启动成功
./nginx
ps -ef | grep nginx
网页访问 http://你的ip地址:80 即可看到nginx的欢迎页面
3.创建一个图片服务器 在这个目录下创建一个images.conf文件
文件的代码为,同时把你的图片资源放到指定目录下
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
sudo ./nginx -s reload
在浏览器上输入:IP地址+:端口号(默认80)+/images/img.jpg 就能访问到图片了
三、python实现公众号自动回复
使用werobot完成公众号自动回复逻辑
import random
import werobot
from werobot.replies import ArticlesReply, Article, ImageReply, TextReply, MusicReply
robot=werobot.WeRoBot(token='zhang628')
# 订阅后的回复
@robot.subscribe
def subscribe():
return "***欢迎关注公众号[愉快][愉快][愉快]***\n" \
"***输入任意内容开始与我聊天!\n" \
"***输入'博客'关注我的博客!\n" \
"***输入'音乐'送上舒缓的歌曲!\n"
# 关键字 博客 回复
@robot.filter('博客')
def blog(message):
reply = ArticlesReply(message=message)
article = Article(
title="Python数据分析实战",
description="我的个人博客",
img="http://8.139.254.73:90/images/img.jpg",
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 = [
['泡沫','邓紫棋','http://8.139.254.73:90/images/%E6%B3%A1%E6%B2%AB.mp3','http://8.139.254.73:90/images/%E6%B3%A1%E6%B2%AB.mp3'],
['句号','邓紫棋','http://8.139.254.73:90/images/%E5%8F%A5%E5%8F%B7.mp3','http://8.139.254.73:90/images/%E5%8F%A5%E5%8F%B7.mp3'],
['倒数','邓紫棋','http://8.139.254.73:90/images/%E5%80%92%E6%95%B0.mp3','http://8.139.254.73:90/images/%E5%80%92%E6%95%B0.mp3'],
['光年之外', '邓紫棋', 'http://8.139.254.73:90/images/%E5%85%89%E5%B9%B4%E4%B9%8B%E5%A4%96.mp3','http://8.139.254.73:90/images/%E5%85%89%E5%B9%B4%E4%B9%8B%E5%A4%96.mp3']
]
num = random.randint(0,3)
return music_list[num]
# 匹配 音乐 回复一首歌
@robot.filter('音乐')
def music(message):
return music_data()
# 让服务器监听在 0.0.0.0:80
robot.config['HOST']='0.0.0.0'
robot.config['PORT']=80
robot.run()
在这里进行微信配置
把你的代码放到服务器上运行,然后就可以对公众号进行测试了
当然,如果你想要丰富你的公众号内容,你也可以使用coze绑定你的公众号完成更智能的对话
www.coze.cn/