今天折腾了一下博客与微信订阅号,想把自己的微信公众号(青声)和博客能够打通,给订阅号添加自动回复博客内文章的功能,使用了 Denis 的微信机器人高级版 ,这个插件对于博客主机环境的要求挺严苛的,只支持 Linux 服务器,PHP 要求 7.2 及以上版本,以及服务器要支持 Memcached,恰巧我的服务器符合上面这个条件,于是安装了 WPJAM-Basic 和微信机器人,一切按照安装指南进行安装。
安装 WPJAM-Basic
1.上传 wpjam-basic 目录 到 /wp-content/plugins/ 目录
2.安装 Memcached 服务端,和 PHP Memcached 扩展之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件复制到 wp-content 目录下。推荐可不安装,但是如果同时安装了微信或者小程序插件,则必须安装:
3.激活插件,开始设置使用。
安装微信机器人高级版 5.0
1.上传 weixin-robot-advanced 目录 到 /wp-content/plugins/ 目录
2.激活插件,在设置页面,输入微信公众号的 appid 和相关的信息
3.服务器地址已经修改为:
http://你的博客地址/weixin/reply/
如果你的服务器不支持 rewrite,或者未开启 rewrite 微信公众号服务器地址,请输入:
http://你博客地址/wp-content/plugins/weixin-robot-test/template/reply.php
4.消息加密方式一定要选择:安全模式
5.点击 微信管理 > 扩展管理 > 数据清理,点击检查数据表按钮,对相关数据表进行升级操作。一定要操作
出现错误
以上两个插件的安装过程中完全没有问题,就在进行自动回复关键词设置的时候出现了问题,提示:Table 'BLOG_weixin_replies' doesn't exist.
在讨论组里咨询了一下插件作者@Denis 他对此表示:估计是数据库某种原因,不能创建表。
定位问题
于是我重新安装了一个LNMP的环境(CentOS Linux 7.3.1611、Nginx 1.8.1、MySQL5.7.19),测试了一下,发现一切正常,能够没有错误提示,正常添加自动回复,公众号测试功能正常。于是到测试的数据库里导出了_weixin_replies的表,想要直接导入到现有数据库中,导入失败,终于定位到了原因:现有服务器上的MySQL是5.1版本的,不支持utf8mb4编码,而恰恰WPJAM微信机器人数据库部分编码为utf8mb4,因此导致无法写入数据表。
解决方法
解决方法有两种,
1.升级数据库MySQL到5.5.3以上版本,MySQL在5.5.3之后增加了这个utf8mb4的编码格式的支持;
2.手动创建数据表
按照下方表的样例来新建一个数据表(点击图片可查看大图)
在新建数据表时需要注意的问题:
2.1 数据表前缀要和WordPress设置的数据表前缀相同,例如已经存在的数据表前缀为:“blog_”,则新建的数据表名称填写应为:“blog_weixin_replies”;
2.2在phpMyAdmin中新建数据表时字段长度和默认值不要忘记设置或设置错误;
2.3修改数据库之前记得备份,以防万一。
微信自动回复测试
按照以上方法,就应该能够解决问题了~!
到微信测试一下:
成功!
后续
建议一下作者,设置一下数据库的编码格式或者增加一条插件要求:MySQL版本要求5.5.3以上!
(。・∀・)ノ
文章末尾固定信息

Comments