具體指哪個介面?
指的是 cgi-bin/user/info
介面,之前你可能在使用者關注事件時,或者網頁靜默授權時,呼叫該介面來儲存使用者資訊,但是該介面即將獲取不到暱稱、頭像資訊了,只支援相關業務頁面非靜默授權獲取。
非靜默授權流程 (與靜默授權對比)
假如公眾號的一個業務頁面為釋出問題 /question/commit.html
,需要獲取使用者的頭像暱稱資訊,只能非靜默授權。
第一步:引導使用者進入授權頁面同意授權,獲取code
業務方先拼接引數,跳轉到如下地址,即使用者授權頁面
https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid
&redirect_uri=https%3A%2F%2Fabc.com%2Fquestion%2Fcommit.html
&response_type=code
&scope=snsapi_base或者snsapi_userinfo
&state=STATE#wechat_redirect
靜默授權
如果引數是 scope=nsapi_base
代表靜默授權,使用者無感知,微信立即跳回業務方頁面,並攜帶 code。
/question/commit.html?code=003tgd100Od6YM22cu3d3BAVEo1tgd1r&state=STATE
後端接受 code,進行下一步。
非靜默授權
如果引數是 sscope=snsapi_userinfo
代表非靜默授權,使用者需要手動點選授權,
點同意後跳回業務方頁面,並攜帶 code。
/question/commit.html?code=041bxl0w3eTLCX2aeK3w3BTVeA0bxl0m&state=STATE
後端接受 code,進行下一步。
第二步:通過code換取網頁授權access_token
api:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid
&secret=secret
&code=063uV0ll2bath13JhCll2ubcoD3uV0lO
&grant_type=authorization_code
result:
scope=
snsapi_base
靜默授權{"access_token":"52_..-OaS8-1A", "expires_in":7200, "refresh_token":"52_Cb..hmw", "openid":"o-qe..DDA", "scope":"snsapi_base"}
scope=
snsapi_userinfo
非靜默授權{"access_token":"52_AV4..LH9A", "expires_in":7200, "refresh_token":"52_h_t..mnlA", "openid":"o-qe..DDA", "scope":"snsapi_userinfo", "unionid":"ocJQ..AU8"}
獲取使用者資訊方式
- scope=
snsapi_base
靜默授權
如果網頁授權的作用域為snsapi_base,則本步驟中獲取到網頁授權access_token的同時,也獲取到了openid,snsapi_base式的網頁授權流程即到此為止。
也就是說靜默授權獲取使用者資訊只使用第二步返回的 openid
,不需要第二步返回的 access_token
,但該方式即將不能獲取頭像暱稱。
https://api.weixin.qq.com/cgi-bin/user/info?access_token=52_..ABAFPC(非網頁授權access_token)
&openid=o-..DDA
result:
{"subscribe":1,
"openid":"o-qe..DDA",
"nickname":"\u5929\u4fdd",(2021年12月27日之後不再輸出)
"sex":0,"language":"zh_CN","city":"","province":"","country":"",
"headimgurl":"http:..S7micTIwa7\/132",(2021年12月27日之後不再輸出)
"subscribe_time":1691888866,
"unionid":"ocJ..AU8",
"remark":"","groupid":0,
"tagid_list":[],
"subscribe_scene":"ADD_SCENE_SEARCH",
"qr_scene":0,"qr_scene_str":""}
- scope=
snsapi_userinfo
非靜默授權
使用第二步返回的openid
及access_token
獲取使用者資訊
result:https://api.weixin.qq.com/sns/userinfo?access_token=52_x..bDCg(網頁授權access_token) &openid=o-q..DDA
{"openid":"o-qe..DDA", "nickname":"魯智深", "sex":0,"language":"","city":"","province":"","country":"", "headimgurl":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/ubCVcWg。。MH0aw\/132", "privilege":[], "unionid":"ocJQGw..AU8"}
本作品採用《CC 協議》,轉載必須註明作者和本文連結