略坑啊,啃文档啃得要吐了,pythonanywhere上又不好看问题出在哪又跑到本地各种测试才知道原来要授权,又跑去N久之前弄的测试账号,总之各种坑。。。不过总算是弄清楚怎么实现的了,参考方倍工作室:微信公众平台开发(76) 获取用户基本信息。
第一步是要从POST过来的XML包里面获取openid,也就是FromUserName。这个在开发包里并没有不知道为啥,或者是我没发现?0.0总之自己写了一小段把这个值取出来了。
def get_openid(data):
if type(data) == unicode:
data = data.encode(‘utf-8‘)
elif type(data) == str:
pass
xml = XMLStore(xmlstring=data)
result = xml.xml2dict
result[‘raw‘] = data
result[‘openid‘] = result.pop(‘FromUserName‘)
return result[‘openid‘]
第二步是获取access_token,直接用sdk的方法就可以,然后用get_user_info()这个方法带上openid,获得返回的值就是用户信息的json。
代码里测试的是发送hi返回用户的昵称。
if request.method==‘POST‘:
body_text=request.body
wechat.parse_data(body_text)
openid=get_openid(body_text)
message = wechat.get_message()
response = None
if message.type == ‘text‘:
if message.content == ‘hi‘:
wechat.get_access_token()
result=wechat.get_user_info(user_id=openid)
response = wechat.response_text(result[‘nickname‘])
这里最大最大的问题是,没认证的公众号没有权限获得这个信息“api unauthorized”真是蛋疼。
只能用之前弄过的测试账号
下面的菜单是N久之前弄的,,,可以无视之
版权声明:本文为博主原创文章,未经博主允许不得转载。