微信内置浏览器调用微信 OAuth 受权获取用户基本信息

首先,我建议各位打印一份微信官方的「网页受权获取用户基本信息」文档,可是不要阅读它。烧掉它,这有重要的象征意义。php

wechat

一个位于微信内置浏览器内的网页要获取用户基本信息,首先要获取任意一个用户对其应用的所谓「openid」(其实应该叫「private id」,由于同一个用户在每一个应用里的这个 ID 都不同)。这个能够经过只能获取到「openid」的snsapi_base受权获得。而后,将用户重定向于如下地址:html

url_fmt = '''
https://open.weixin.qq.com/connect/oauth2/authorize?
appid={appid}
&redirect_uri={redirect_uri}?userid={userid}
&response_type={response_type}&scope={scope}&state={state}
'''.replace('\n', '')

scope固然是snsapi_userinfo,其它参数本身填。redirect_uri最好经过urllib.parse.quote编码一下,虽然好像不编码也能够用。利用url_fmt.format_map或者url_fmt.format方法把参数填进去,重定向以后,微信就会弹出受权提示页面了。segmentfault

记住,必定要用我这里给出的格式,不要按标准 URL 参数处理方法使用urllib.parse.urlencode方法构造参数部分,由于这个微信受权 URL 里的参数顺序是重要的。具体规则不清楚,大概是appid必定要在redirect_uri前边,scoperesponse_type必定要在其后边。反正你按我这里给出的格式填就对了。api

很奇怪为何不能使用标准 URL 参数处理函数么?那我还告诉你,给微信接口传 JSON 时,标准 JSON Unicode 转义\uXXXX是无效的。浏览器


via lilydjwg.is-programmer.com微信

相关文章
相关标签/搜索