将我们的服务器放在新浪云上,搭建微信公众账号,下面的代码将实现获取微信token,实现最简单的消息对话(用户说什么,我们回复什么)。
因为网上有的代码有错,所以将这个传上来供大家借鉴
注意,代码中的空格不能多,会出错,要严格缩进对齐,然后使用下面的代码一定是无错的。
下面文件依次为:
第一个代码文件是index.wsgi 文件 ,它是启动服务的文件
第二个代码文件是config.yaml文件 , 配置文件
第三个代码文件是meishidaren.py 文件,用于由微信开发模式获取url 和 token,同时可以与用户实现简单通信
1.[代码][Python]代码
import sae
from meishidaren import app
application = sae.create_wsgi_app(app)
2.[代码][Python]代码
name: gourmetmaster
version: 1
3.[文件] meishidaren.py ~ 1KB 下载(60)
import time
from flask import Flask,g,request,make_response
import hashlib
import xml.etree.ElementTree as ET
app = Flask(__name__)
app.debug=True
@app.route('/',methods=['GET','POST'])
def wechat_auth():
if request.method == 'GET':
token='liusicong'
data = request.args
signature = data.get('signature','')
timestamp = data.get('timestamp','')
nonce = data.get('nonce','')
echostr = data.get('echostr','')
s = [timestamp,nonce,token]
s.sort()
s = ''.join(s)
if (hashlib.sha1(s).hexdigest() == signature):
return make_response(echostr)
else:
rec = request.stream.read()
xml_rec = ET.fromstring(rec)
tou = xml_rec.find('ToUserName').text
fromu = xml_rec.find('FromUserName').text
content = xml_rec.find('Content').text
xml_rep = "%s0"
response = make_response(xml_rep % (fromu,tou,str(int(time.time())), content))
response.content_type='application/xml'
return response