题记——今日想用python开发个微信公众号,所以哼次哼次的扒来官方文档从头来做,可是。。。。
使用python开发微信公众号
1.1、申请服务器
以腾讯云服务器为示例:腾讯云服务器购买入口,购买指导请参考快速入门linux云服务器
1.2 搭建服务
以web.py网络框,python,腾讯云服务器为例介绍。
1)安装/更新需要用到的软件
安装python3.6.5版本
安装web.py
安装libxml2, libxslt, lxml python
2)新建main.py文件,编辑代码。
# vim main.py
编写服务器代码
# -*- coding: utf-8 -*-
# filename: main.py
import web
urls = (
'/wx', 'Handle',
)
class Handle(object):
def GET(self):
return "hello, this is handle view"
if __name__ == '__main__':
app = web.application(urls, globals())
app.run()
3)执行命令:
# python main.py 80 。
4)url填写:http://外网IP/wx (外网IP请到腾讯云购买成功处查询)。如下图,一个简单的web应用已搭建。
1.3 申请公众号
申请公众号网页
邮箱激活后,选择公众号类型。不同的公众号拥有不同的能力,详情请见wiki:公众号接口权限说明,当然,服务号、企业号需要一定的证件和相关资料填写,如果证件一时不能准备好,没关系,公众号其实已注册,下次可以根据此邮箱&密码登录再选择。
1.4 开发者基本配置
1) 公众平台官网登录之后,找到“基本配置”菜单栏
2) 填写配置
url填写:http://外网IP/wx 。外网IP请到腾讯云购买成功处查询。 http的端口号固定使用80,不可填写其他。
Token:自主设置,这个token与公众平台wiki中常提的access_token不是一回事。这个token只用于验证开发者服务器。
3) 现在选择提交肯定是验证token失败,因为还需要完成代码逻辑。改动原先main.py文件,新增handle.py文件
#vim main.py
更改main.py文件内容
# -*- coding: utf-8 -*-
# filename: main.py
import web
from handle import Handle
urls = (
'/wx', 'Handle',
)
if __name__ == '__main__':
app = web.application(urls, globals())
app.run()
新增加handle.py文件
#vim handle.py
编写hand.py代码, 附加逻辑流程图
# -*- coding: utf-8 -*-
# filename: handle.py
import hashlib
import web
class Handle(object):
def GET(self):
try:
data = web.input()
if len(data) == 0:
return "hello, this is handle view"
signature = data.signature
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "xxxx" #请按照公众平台官网\基本配置中信息填写
list = [token, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
map(sha1.update, list)
hashcode = sha1.hexdigest()
print "handle/GET func: hashcode, signature: ", hashcode, signature
if hashcode == signature:
return echostr
else:
return ""
except Exception, Argument:
return Argument
4) 重新启动成功后(python main.py 80),点击提交按钮。若提示”token验证失败”, 请认真检查代码或网络链接等。若token验证成功,会自动返回基本配置的主页面,点击启动按钮