微信網頁授權access_token和普通access_token區別
access_token是公眾號的全域性唯一介面呼叫憑據,公眾號呼叫各介面時都需要使用access_token。 注意:是所有介面都需要使用
兩者異同
-
有效期:兩者有效時間都是7200s。
-
使用範圍:通過網頁授權獲得的access_token,只能獲取到對應的微信使用者資訊,與微信使用者是一對一關係;而普通的access_token在有效期內可以使用,可以獲取所有使用者資訊。
-
次數限制:普通access_token每天獲取最多次數為2000次,而網頁授權的access_token獲取次數沒有限制。
如何利用普通access_token獲取使用者資訊
補充: 既然通過普通access_token可以獲取使用者資訊,那為什麼還要網頁授權access_token呢?
我的理解是:公眾號A想獲得受關注使用者B的資訊,一般來說,A提供一個標識(普通的access_token)給第三方公眾平臺,說明是自己而不是別的公眾號。B提供一個標識,用來標識自己(openid)。這樣公眾號A就可以獲取B使用者資訊了,但是若公眾號C也想獲取B資訊,而B未關注C。這樣很容易造成使用者B資訊的洩露,所以比較安全的做法是讓使用者B去決定是否給公眾號C許可權,來獲取自己的私密資訊。這個許可權就是網頁授權的access_token。 因此,通過普通access_token獲取使用者資訊時,如果使用者未關注,資訊獲取就為空。而網頁授權access_token的獲取,只要使用者許可,就可以獲得,不論使用者是否關注。
網頁授權access_token
微信網頁授權是通過OAuth2.0機制實現的,在使用者授權給公眾號後,公眾號可以獲取到一個網頁授權特有的介面呼叫憑證(網頁授權access_token),通過網頁授權access_token可以進行授權後接口呼叫,如獲取使用者基本資訊。
獲取方式
普通access_token
其他微信介面,需要通過基礎支援中的“獲取access_token”介面來獲取到的普通access_token呼叫。
獲取方式
引數說明:
引數 | 是否必須 | 說明 |
---|---|---|
grant_type | 是 | 獲取access_token填寫client_credential |
appid | 是 | 第三方使用者唯一憑證 |
secret | 是 | 第三方使用者唯一憑證金鑰,即appsecret |
返回引數:
引數 | 說明 |
---|---|
access_token | 獲取到的憑證 |
expires_in | 憑證有效事件,單位:秒 |
返回引數:
引數 | 說明 |
---|---|
access_token | 獲取到的憑證 |
expires_in | 憑證有效時間 |
利用普通access_token獲取使用者資訊
在關注者與公眾號產生資訊互動後,公眾號可獲得關注者(注意:用此種方法獲取使用者資訊,前提是使用者必須關注公眾號)的openid(加密後的微訊號,每個使用者對每個公眾號的openid是唯一的)。公眾號可通過本介面來根據openid獲取使用者基本資訊,包括暱稱、頭像、性別、所在城市、語言和關注時間。
引數說明:
引數 | 是否必須 | 說明 |
---|---|---|
access_token | 是 | 呼叫介面憑證 |
openid | 是 | 普通使用者的標識,對當前公眾號唯一 |
lang | 否 | 返回國家地區語言版本,zh_CN 簡體,zh_TW 繁體,en 英語 |
返回引數:
引數 | 說明 |
---|---|
subscribe | 使用者是否訂閱該公眾號標識,值為0時,代表此使用者沒有關注該公眾號,拉取不到其餘資訊。 |
openid | 使用者的標識,對當前公眾號唯一 |
nickname | 使用者的暱稱 |
sex | 使用者的性別,值為1時是男性,值為2時是女性,值為0時是未知 |
city | 使用者所在城市 |
country | 使用者所在國家 |
province | 使用者所在省份 |
language | 使用者的語言,簡體中文為zh_CN |
headimgurl | 使用者頭像,最後一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),使用者沒有頭像時該項為空。若使用者更換頭像,原有頭像URL將失效。 |
subscribe_time | 使用者關注時間,為時間戳。如果使用者曾多次關注,則取最後關注時間 |
unionid | 只有在使用者將公眾號繫結到微信開放平臺帳號後,才會出現該欄位。 |
remark | 公眾號運營者對粉絲的備註,公眾號運營者可在微信公眾平臺使用者管理介面對粉絲新增備註 |
groupid | 使用者所在的分組ID(相容舊的使用者分組介面) |
tagid_list | 使用者被打上的標籤ID列表 |
subscribe_scene | 返回使用者關注的渠道來源,ADD_SCENE_SEARCH 公眾號搜尋,ADD_SCENE_ACCOUNT_MIGRATION 公眾號遷移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 掃描二維碼,ADD_SCENEPROFILE LINK 圖文頁內名稱點選,ADD_SCENE_PROFILE_ITEM 圖文頁右上角選單,ADD_SCENE_PAID 支付後關注,ADD_SCENE_OTHERS 其他 |
qr_scene | 二維碼掃碼場景(開發者自定義) |
qr_scene_str | 二維碼掃碼場景描述(開發者自定義) |