主页> 常见问题> python开发微信公众平台 BAE

python开发微信公众平台 BAE

阅读: 常见问题

最近学习Python,发现可以使用python来开发微信公众平台,就想尝试一下。因为微信公众平台的开发者模式需要用到服务器,自己的电脑不可能整天开着,所以拿自己电脑当服务器有点不太现实,所以我选择了将应用部署到了BAE上,其实部署到SAE上也是可以的。

首先申请一个微信公众号以及一个bae账号。在bae上创建一个python-web应用。使用SVN将应用内容CheckOut到本地会看到


然后对index.py进行编辑,输入以下代码

#coding:utf-8
from bottle import *
import hashlib
import xml.etree.ElementTree as ET
import urllib2
import json
import time

app=Bottle()

@app.get("/")
def checkSignature():
	token="shgweixin"
	signature=request.GET.get('signature',None)
	timestamp=request.GET.get('timestamp',None)
	nonce=request.GET.get('nonce',None)
	echostr=request.GET.get('echostr',None)
	tmpList=[token,timestamp,nonce]
	tmpList.sort()
	tmpstr="%s%s%s"%tuple(tmpList)
	hashstr=hashlib.sha1(tmpstr).hexdigest()
	if hashstr==signature:
		return echostr
	else:
		return False
def parse_msg():
	recvmsg=request.body.read()
	root=ET.fromstring(recvmsg)
	msg={}
	for child in root:
		msg[child.tag]=child.text
	return msg
@app.post("/")
'''
这边的代码是为了是公众号自动回复用户发送的消息
'''
def response_msg():
	msg=parse_msg()
	echostr="""
	
	
	%s
	
	
	"""%(msg['FromUserName'],msg['ToUserName'],time.time(),"text",msg['Content'])
	return echostr
if __name__=="__main__":
	debug(True)
	run(app,host='127.0.0.1',port=8080,reloader=True)
else:
	from bae.core.wsgi import WSGIApplication
	application = WSGIApplication(app)


因为用到了bottle的框架,所以需要下载bottle.py放在同一目录下


然后COMMIT,在bae中选择快捷发布,将新的应用发布到网上。

在微信公众平台管理中选择“开发者中心”-->“修改配置”,填写相应的内容

url:百度云服务器上的域名

token:用于验证的内容(需要个代码段中token内容一致)


之后点击提交,没有错误之后,开发者模式就启用了。

这时候可以向公众号发送消息,公众号会回复一样的内容。如果发送消息提示“该公众号暂时无法提供服务,请稍后再试”那就说明代码有一定的问题,需要修改。


【温馨提示】倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至55506560@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于本站观点。用户与作者的任何交易与本站无关,请知悉。

客服
套餐咨询,操作答疑等
在线客服