sae 部分
创建应用
我们选择 python 空应用
代码部署选git
然后在本地添加git仓库
sae应用可以有10个版本
python
本地建立vendor文件夹,需要安装flask等第三方包
pip install -t vendor flask
建立一个index.wsgi文件
import sae
sae.add_vendor_dir('vendor')
from wxtest import app #flask
application = sae.create_wsgi_app(app)
然后建个wxtest.py
# -*- coding:utf8 -*-
import hashlib
import time
from flask import Flask, request, make_response, g,render_template
import xml.etree.ElementTree as ET
app = Flask(__name__)
app.debug = True
#微信验证
@app.route('/wx', methods=['GET','POST'])
def wechat_auth():
if request.method == 'GET':
token = '输入自己喜欢的'
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):
response = make_response(echostr)
response.headers['content-type'] = 'text'#这步很关键,不然会出错
return response
else: ###这里就是处理用户发来的消息了
rec = request.stream.read()
xml_rec = ET.fromstring(rec)
toUser= xml_rec.find('ToUserName').text
fromUser = xml_rec.find('FromUserName').text
reply = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"
reply_news_temp_head = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>%s</ArticleCount><Articles>"
reply_news_temp_body = "<item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item>"
reply_news_temp_foot = "</Articles></xml>"
msgType = xml_rec.find('MsgType').text
if msgType == 'text': #根据msgType来处理信息(text,image...)
pass
接下去,就可以自己发挥想象了,比如写天气啊什么的了
然后我们就可以部署到sae上去
微信公众平台
开发->基本配置
url填入刚刚我们建立的sae,wxtest1111.applinzi.com/wx
token 填的和 wxtest.py里的一致
这样就全部结束了
网友评论