1. 程式人生 > >微信的全域性介面使用憑證access_token和網頁授權臨時access_token

微信的全域性介面使用憑證access_token和網頁授權臨時access_token

(轉 https://blog.csdn.net/u010882234/article/details/66972327)  

 微信公眾號開發,需要呼叫微信的各個介面,獲取使用者資訊和使用者授權等。其餘的業務邏輯功能,和普通web工程大同小異。今天總結一下微信的access_token, 本文簡單講一下微信的全域性介面使用憑證access_token和網頁授權臨時access_token的獲取,以及區別。

         先講全域性介面使用憑證access_token。

         要使用微信介面,就要先獲取access_token,可以通過appid和appsecret,呼叫微信獲取access_token的介面獲取。appid是公眾號的唯一標識,是申請微訊號後分配到的。appsecret算是服務號的使用密碼,可以登入微信公眾平臺生成或重置。獲取access_token,使用這2個引數就行了。介面:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET。這個access_token,是微信公眾號的全域性唯一票據,各個微信介面呼叫都需要用到它。這個介面每天使用限制是2000次,所以自動獲取這個access_token是有限制,不能所以介面呼叫都去重新獲取。它的有效期是2個小時,已經自動實現了平滑過渡,可以放心的每隔2小時呼叫一次。

        下面講網頁授權,code換取access_token。

        首先,使用者網頁授權,獲取code,介面:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect。APPID,是自己服務號的APPID;REDIRECT_URI,是自己想要跳轉的目標地址;response_type=code,表示想要獲取code,不能改變這個引數;scope,一般使用引數“snsapi_base”(使用者必須已關注公眾號),可以取得openid,不需要使用者手動同意,自動授權跳轉;scope,如果使用者沒有關注,又想獲取使用者基本資訊(頭像、暱稱等),可以使用引數“snsapi_userinfo”,不過會彈出微信授權頁面,需要使用者點選授權;state,微信留給開發者自由使用的欄位,我們可以把自己需要的引數,或重定向的地址放在裡面。#wechat_redirect加上就行。

        然後,用得到的code,換取網頁授權的access_token,https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code。這個介面獲取的是臨時的網頁授權的access_token,與之前說的公眾號全域性唯一票據access_token是兩個東西,不能混為一談。而且,通過code獲取access_token介面,沒有使用次數限制。呼叫這個介面,可以獲取到access_token和openid。

       以上講了公眾號全域性唯一票據access_token和臨時的網頁授權的access_token的獲取,之後,呼叫微信介面即可。