微信公众平台开发爬坑经历

简介

本文总结了开发微信公众号的后台接入过程的步骤和经验,主要包括:

  1. VPS 服务器搭建 Python + Werobot 环境,搭建 FTP 服务器,使用FileZilla 方便代码上传(环境为 Ubuntu 16.04LTS );

  2. 订阅号后台接入,并通过微信公众平台的验证;

  3. 开发完成短网址和搜歌服务;

  4. 开发过程中遇到的坑和解决办法

成果展示

如下图所示: 成果图

安装Python3

  # 切换到root
  sudo -i
  apt-get install python3 python3-pip python3-dev

安装Werobot

  pip3 install werobot

安装FTP

博主已经预装 lnmp 环境,直接选择压缩文件的 pureftpd.sh 执行

一键安装lnmp环境

注意:执行 lnmp ftp add 操作前先创建一个网站目录,否则安装完后要重新添加软连接

创建 ftp 账号, 按步骤输入 name , password , directory

注意:第三步目录位置要写绝对路径

使用FileZilla连接FTP服务器

如下图所示: 连接FTP

获取微信公众平台配置

如下图所示: 微信公众平台配置

注意:先别点击提交,会提示 token 验证失败,需要后面操作完成后在保存

创建简单案例hello.py

此时在公众平台点击提交,提示 token 验证成功,然后点击启用

创建目录结构

如下图所示: 目录结构

完善帮助提示help.py

完善短网址功能shortUrl.py

百度短网址API

完善搜歌功能music163.py

音乐集成API

完善主入口hello.py

暗坑

  1. 在开发前一定要统一环境,确定使用 python2 还是 python3 ,否则写代码和调试很容易出问题,我本地 python2 运行正常,线上 python3 报错,后来发现 python3 有些方法没有了:示例

  2. token 验证仅支持 80 端口和 443 端口,否则会一直出现 token验证失败

  3. python3print 的内容必须用括号包裹(调试常遇到)

  4. python3 hello.py 运行报错端口被占用,解决如下:

  5. 报错类似 'ascii' codec can't encode character 请检查返回值是否正确 string

  6. 有时候线上运行代码报错,但是调试其实只需要改动一点点,避免 ftp 重复劳动,直接 putty 连接使用 vi 修改

  7. python 在同一 class 中的 def 调用,使用 self 传递:Python中self的解释

  8. 其实最一开始我是选的 Django + wechatpy 开发的,写了 Demo ,token 验证也能通过,就是在消息 reply 处理总是出现各种莫名问题,很烦,然后继续找框架,才用上 werobot

参考文档

Last updated

Was this helpful?