django搭建微信后台——获取用户信息(7.20)

略坑啊,啃文档啃得要吐了,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”真是蛋疼。

只能用之前弄过的测试账号
django搭建微信后台——获取用户信息(7.20)

下面的菜单是N久之前弄的,,,可以无视之

版权声明:本文为博主原创文章,未经博主允许不得转载。

django搭建微信后台——获取用户信息(7.20)

上一篇:微信支付-扫码支付备忘


下一篇:用nodejs写个简单的视频网站[教程]