溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信公眾號怎么獲取access_token

發(fā)布時間:2021-09-27 10:20:23 來源:億速云 閱讀:167 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“微信公眾號怎么獲取access_token”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“微信公眾號怎么獲取access_token”這篇文章吧。

access_token是公眾號的全局唯一接口調用憑據,我們和微信服務器進行交互,服務器通過access_token判斷我們是誰(哪個公眾號服務的請求)。所以 我們在開發(fā)過程中服務端拿到的access_token是一定不能顯式暴露給外部,否則將導致數據安全問題。別人拿到你的accessToken操作你的公眾號。access_token的有效期目前為2個小時,過期需要再次獲取。

下面是一種獲取access_token方式

1.項目添加httpclient相關依賴,示例使用httpclient請求微信服務器,獲取微信返回結果。

<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->  <dependency>   <groupId>org.apache.httpcomponents</groupId>   <artifactId>httpclient</artifactId>   <version>4.5.3</version>  </dependency>  <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->  <dependency>   <groupId>org.apache.httpcomponents</groupId>   <artifactId>httpcore</artifactId>   <version>4.4.6</version>  </dependency>

2.httpClientUtil類,網上隨手找的 試了一下本例的doget方法 沒有問題,其他的 暫不考慮

public class HttpClientUtil {  public static String doGet(String url, Map<String, String> param) {    // 創(chuàng)建Httpclient對象    CloseableHttpClient httpclient = HttpClients.createDefault();    String resultString = "";    CloseableHttpResponse response = null;    try {      // 創(chuàng)建uri      URIBuilder builder = new URIBuilder(url);      if (param != null) {        for (String key : param.keySet()) {          builder.addParameter(key, param.get(key));        }      }      URI uri = builder.build();      // 創(chuàng)建http GET請求      HttpGet httpGet = new HttpGet(uri);      // 執(zhí)行請求      response = httpclient.execute(httpGet);      // 判斷返回狀態(tài)是否為200      if (response.getStatusLine().getStatusCode() == 200) {        resultString = EntityUtils.toString(response.getEntity(), "UTF-8");      }    } catch (Exception e) {      e.printStackTrace();    } finally {      try {        if (response != null) {          response.close();        }        httpclient.close();      } catch (IOException e) {        e.printStackTrace();      }    }    return resultString;  }  public static String doGet(String url) {    return doGet(url, null);  }  public static String doPost(String url, Map<String, String> param) {    // 創(chuàng)建Httpclient對象    CloseableHttpClient httpClient = HttpClients.createDefault();    CloseableHttpResponse response = null;    String resultString = "";    try {      // 創(chuàng)建Http Post請求      HttpPost httpPost = new HttpPost(url);      // 創(chuàng)建參數列表      if (param != null) {        List<NameValuePair> paramList = new ArrayList<>();        for (String key : param.keySet()) {          paramList.add(new BasicNameValuePair(key, param.get(key)));        }        // 模擬表單        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"utf-8");        httpPost.setEntity(entity);      }      // 執(zhí)行http請求      response = httpClient.execute(httpPost);      resultString = EntityUtils.toString(response.getEntity(), "utf-8");    } catch (Exception e) {      e.printStackTrace();    } finally {      try {        response.close();      } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();      }    }    return resultString;  }  public static String doPost(String url) {    return doPost(url, null);  }  public static String doPostJson(String url, String json) {    // 創(chuàng)建Httpclient對象    CloseableHttpClient httpClient = HttpClients.createDefault();    CloseableHttpResponse response = null;    String resultString = "";    try {      // 創(chuàng)建Http Post請求      HttpPost httpPost = new HttpPost(url);      // 創(chuàng)建請求內容      StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);      httpPost.setEntity(entity);      // 執(zhí)行http請求      response = httpClient.execute(httpPost);      resultString = EntityUtils.toString(response.getEntity(), "utf-8");    } catch (Exception e) {      e.printStackTrace();    } finally {      try {        response.close();      } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();      }    }    return resultString;  }}

3.第三步就是簡單的測試代碼了

public class WeChatAccessTokenTest {  public static void main(String[] args) {    Map<String, String> params = new HashMap<>();    // TODO: 2018/11/16 *號改成真實appid    params.put("appid", "******");    // TODO: 2018/11/16 *號改成真實secret    params.put("secret", "******");    params.put("grant_type", "client_credential");    String response = HttpClientUtil.doGet("https://api.weixin.qq.com/cgi-bin/token", params);    JSONObject accessTokenObject = JSONObject.parseObject(response);    String accessToken = accessTokenObject.getString("access_token");    Long expire = accessTokenObject.getLong("expires_in");    System.out.println(accessToken);  }}

以上是“微信公眾號怎么獲取access_token”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI