国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}

2024-05-06 16:46:25
字體:
來源:轉載
供稿:網友

{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}

聲明:是已認證的服務號 

前置說明

網頁授權獲取用戶基本信息:兩種 scope 域

https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state=ok#wechat_redirect

snsapi_base 不需要用戶點同意,直接跳轉到授權后的頁面,只能用于獲取openid,不能獲取用戶基本信息

snsapi_userinfo 會征求用戶同意,授權后,可以獲取用戶基本信息

為了方便大家理解,把接口返回的數據展示下吧

{  "access_token":"YNTxefBAfNW565Q4MAI..................j-hLNzin9Vq6BnvcvJ8NKHdBSRhkLjHQliLiNQc",  "expires_in":7200,  "refresh_token":"EYmfmvUg0PGtOWiLpb..................T8O2UyKL95_Da23fLV-nYFDgnt14Ljl_x_zCMY",  "openid":"oYbGRs8MmU6bESxXcX2Z0rFRivjQ",  "scope":"snsapi_base"}{  "access_token":"IdFXvRMq3J6vXUcZ0iQ..................G1xbkGJEnbnSKQ4G0nyQ5vmNSKF4a4DzGu64",  "expires_in":7200,  "refresh_token":"J8ot4JWphxwvyAY3I9r..................krET6P-8dot_-_tQfFoLUQI3EI-NT-I-degNRGumA",  "openid":"oYbGRs8MmU6bESxXcX2Z0rFRivjQ",  "scope":"snsapi_userinfo"}

問題再現

1  首次使用 scope=snsapi_base 進行網頁授權

2  拿到 code 后調用接口 https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code

3  根據上一步獲取的 openid 和 access_token 調用接口 https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN 獲取用戶基本信息

4  獲取失敗:返回 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}

失敗原因

scope=snsapi_base 時,只能用于獲取openid,不能獲取用戶的基本信息(獲取用戶信息,需要用戶同意。scope=snspai_base 授權時,并沒有征求用戶同意授權這一操作)

問題來了

(有時候成功,有時候失敗)

為什么有的時候(或者另外一個公眾號),按上面的步驟,能成功獲取到用戶的基本信息?

“48001,api unauthorized”之所以讓很多人迷惑不解,就在于這個問題

先直接上解決方式,再說原因

使用 scope=snsapi_userinfo 進行一次網頁授權,步驟跟上面【問題再現】一樣,成功獲取到用戶的微信基本信息。

再使用 scope=snsapi_base 重復一遍【問題再現】,這次成功了!!!

原因

上面的實驗其實已經說明原因了,怕有些人一下子理解不了,所以

第一次使用 scope=snsapi_base,這是不需要經過用戶同意的授權,不能獲取用戶的基本信息

第二次使用 scope=snsapi_userinfo,這是需要用戶點擊同意的授權,能獲取到用戶的基本信息

使用 scope=snsapi_userinfo,用戶同意授權后,在一定時間內,不需要用戶的同意,也可以獲取用戶基本信息(此時使用 scope=snsapi_base 也能獲取到用戶基本信息:甚至參數openid的值隨便填都沒關系,可以是空格,但不能為空)

注意

使用 scope=snsapi_userinfo,用戶同意授權后,access_token 的有效期是7200秒(兩小時)。

access_token 失效后,可以使用 refresh_token 調用接口 https://api.weixin.qq.com/sns/oauth2/refresh_token?appid={0}&grant_type=refresh_token&refresh_token={1} 重新獲取 access_token(有效期7200秒)

(終于知道 refresh_token 是干嘛用的了吧)

refresh_token 的有效期是30天,即用戶同意授權后,在30天內,不再需要用戶同意授權,就可以獲取用戶基本信息

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都江堰市| 仁布县| 宜兰市| 台南县| 兰州市| 襄城县| 清流县| 全州县| 长沙市| 盐津县| 方正县| 永兴县| 五河县| 平舆县| 磐安县| 湖州市| 新巴尔虎左旗| 大田县| 河北省| 盐津县| 托里县| 巫山县| 吕梁市| 西和县| 上蔡县| 陇西县| 望江县| 镇江市| 临邑县| 柳州市| 祥云县| 景谷| 南靖县| 云和县| 大悟县| 平乐县| 乐昌市| 曲阜市| 调兵山市| 景东| 大关县|