flask+新浪sae+图灵机器人实现超简单微信公众号智能回复功能
Posted CodeNotes
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask+新浪sae+图灵机器人实现超简单微信公众号智能回复功能相关的知识,希望对你有一定的参考价值。
人工智能很火,但是智能算法对于大多数人来说门槛儿还是挺高的
对于我们这种喜欢折腾的码农来说,就算不会算法也要又一颗想折腾的心
我们不会算法,可以基于已经成熟的算法成果来做一些好玩儿的东西
申请新浪SAE,初次申请新浪会给200个云豆,完全够我们玩儿一阵儿了;
在新浪SAE上创建一个python的项目,使用git或者svn把工程代码拉下来,我使用的是git;
使用pyCharm创建flask项目;
申请图灵机器人,网站是http://www.tuling123.com/;
flask对接图灵机器人api;
将flask代码提交到sae上;
结束。
效果如下,做完以后不由的感觉python的方便快捷
图1
图2
如上图所示,点击进入微信的这个页面,具体路径是左侧下方的开发标签下的基本配置,点击进入后,点击服务器配置按钮进入上图所示页面,
需要填写的又两个内容:
token,这个令牌可随意填写一个,和flask服务里校验接口里的token一致就行
下面就到校验接口的部分了,直接上代码吧,校验方法如下:
@app.route('/', methods=['GET'])
def wechat():
if request.method == 'GET':
# 这里改写你在微信公众平台里输入的token
token = 'xxxxxx'
# 获取输入参数
query = request.args
signature = query.get('signature', '')
timestamp = query.get('timestamp', '')
nonce = query.get('nonce', '')
echostr = query.get('echostr', '')
s = [timestamp, nonce, token]
s.sort()
s = ''.join(s)
if hashlib.sha1(s).hexdigest() == signature:
resp = make_response(echostr)
resp.headers['content-type'] = 'text'
return resp
else:
return ""
flask对接图灵机器人api
@app.route('/', methods=['POST'])
def autoreplay():
xml = ET.fromstring(request.data)
toUser = xml.find('ToUserName').text
fromUser = xml.find('FromUserName').text
msgType = xml.find("MsgType").text
createTime = xml.find("CreateTime")
if msgType == 'text':
content = xml.find('Content').text
content = text_reply(content)
resp = make_response(reply_text(fromUser,
toUser, reply(fromUser, content)))
resp.headers['content-type'] = 'text'
return resp
elif msgType == 'location':
location.getInfo(xml)
else:
'暂不支持图片视频语音类'
上面这段代码是解析http各个字段的,主要获取到content,将content扔给text_replay方法
def text_reply(msg):
info = msg['Text'].encode('utf-8')
url = 'http://www.tuling123.com/openapi/api'
data = {u"key": "申请的key", "info": info, u"loc": "",
"userid": ""}
response=request.post(url,data).content
s = json.loads(response, encoding='utf-8')
return s['text']
以上是关于flask+新浪sae+图灵机器人实现超简单微信公众号智能回复功能的主要内容,如果未能解决你的问题,请参考以下文章
使用新浪云(SAE)实现基于mySql和微信公众平台的关键字请求响应服务
从Python爬虫到SAE云和微信公众号:新浪SAE上搭建微信服务