苹果 cms 自定义对接微信公众号

苹果 cms 自定义对接微信公众号

概述

苹果 cms 自带的微信对接能实现关注回复少量关键字词回复
功能很鸡肋,对接并没有什么乱用。所以自己用就学习了下怎么自己对接,

逻辑:用python的requests库调用苹果自己的开放接口,获得列表信息,用webrobot对接微信。

实现方式

  1. 苹果 cms 后台开启开放 api,默认关闭的。
    https://ae01.alicdn.com/kf/H9445613f6057452ca17022526abe8f799.png

  2. 安装脚本用到的 python 库

    1
    2
    #最新版本引入模块失败会,没有找到解决方法
    pip install werobot=0.6.1
    1
    pip install requests
  3. 创建 python 脚本,wx.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/evn python
# coding=utf-8
import werobot,requests,json,sys
reload(sys)
sys.setdefaultencoding('utf8')
from werobot.reply import ArticlesReply, Article
robot = werobot.WeRoBot(token='robot')//自定义令牌,公众号会用到

# 被关注回复信息
@robot.subscribe
def subscribe(message):
return '''欢迎关注YY影院
1.输入要搜索的视频即可获得影片信息
2.输入 `博客` 关键字可以获取我的博客地址
'''

# 关键字 博客 回复
@robot.filter('博客')
def echo(message):
reply = ArticlesReply(message=message)
article=Article(
title="blog of Jw",
description="Jw的博客",
img="https://ae01.alicdn.com/kf/H06e4467cda7449bc84ffc8215e9bb0ca6.png",
url="https://blog.gojw.xyz"
)
reply.add_article(article)
return reply

#影片查询
@robot.text
def findvedio(message,session):
d = {'wd': message.content}
#后台开放api地址
results = requests.get('http://yyqqz.com/api.php/provide/vod/ac=list', params=d).json()
return_value =''
total=results['total']
if total==0:
return '没有搜索到您想要的信息,请私聊站长帮忙'
for row in results['list']:
Name = row['vod_name']
burl='https://yyqqz.com/voddetail/'+str(row['vod_id'])
return_value += '名称: %s\n' % Name
return_value += '详情: %s\n' % burl

return return_value
#收到图片的回复
@robot.image
def getImage(message):
return'This is a picture!'
#配置端口3008,微信对接只支持80和443端口,所以需要反向代理下,看第4步
robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 3008
  1. 直接在网站配置末尾添加
    https://ae01.alicdn.com/kf/H6d35bd2b655a42df84d3a4a33e7a986dT.png
1
2
3
4
5
6
7
8
9
10
11

upstream robot.yyqqz.com {
server localhost:3008;
}
server {
listen 80;
server_name robot.yyqqz.com;#所有访问子域名robot.yyqqz.com代理到 robot.yyqqz.com的upstream,也就是本地的3008端口
location / {
proxy_pass http://robot.yyqqz.com;
}
}

域名解析参考

https://ae01.alicdn.com/kf/H38c1ac05ab0045a381f101e0054d72ce6.png

  1. 启动服务
    1
    python wx.py
    如果全都调试完毕,让脚本后台运行即可
    1
    nohup python wx.py &
  2. 微信公众号设置服务器地址和令牌
    在开发–>基本配置 ,设置你的服务地址和令牌
    https://ae01.alicdn.com/kf/He39e055ff25e4cff8a106a6785fe84baR.png
  3. 效果

https://ae01.alicdn.com/kf/Hb21a95265bc64805afb24df2169e2558r.jpg

参考

[1]werobot中文文档

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!