1. 程式人生 > >微信開發系列(四)_獲取accessToken

微信開發系列(四)_獲取accessToken

之前介紹的token是為了驗證伺服器地址的可用性(可隨便填寫  一次連線成功之後不再有用)

現在的accessToken是通過appId和appSecret獲取的重要憑證

accesstoken:

微信公眾平臺開發的時候會用到access_token,如:新增自定義選單的時候需要用到access_token。只有認證過的訂閱號或者服務號才能獲取access_token。

在微信公眾平臺介面開發中,Access Token佔據了一個很重要的地位,相當於進入各種介面的鑰匙,拿到這個鑰匙才有呼叫其他各種特殊介面的許可權。
access_token是公眾號的全域性唯一票據,公眾號呼叫各介面時都需使用access_token。正常情況下access_token有效期為7200秒,重複獲取將導致上次獲取的access_token失效。

一:編寫accessToken實體類(accessToken值和有效時間)
package com.weixin.util;

public class AccessToken {

	private String access_token = null;// 獲取到的憑證  
	private String expires_in = null;// 憑證有效時間,單位:秒  
	
	public AccessToken() {
		super();
	}

	public AccessToken(String access_token, String expires_in) {
		this.access_token = access_token;
		this.expires_in = expires_in;
	}
	
	public String toString() {
		return "AccessToken [access_token=" + access_token + ", expires_in="
				+ expires_in + "]";
	}

	public String getAccess_token() {
		return access_token;
	}
	public void setAccess_token(String access_token) {
		this.access_token = access_token;
	}
	public String getExpires_in() {
		return expires_in;
	}
	public void setExpires_in(String expires_in) {
		this.expires_in = expires_in;
	}

}<span style="font-size:18px;"><strong>
</strong></span>
二:微訊號的appId和appSecret放在一個類中(也可以不單獨寫)
package com.weixin.util;


/**
 * 這是微信基礎資訊類,在這個類中,說明微信公眾賬號的相關資訊。
 * @author Administrator
 *
 */
public class WX_Info {

	public static String APPID = "wxad2552796bf88e3b";
	
	public static String SECRET = "b6f44e78da6d8e733695edea39758646"; 

	
}
三:獲取accessToken
package com.weixin.util;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import com.weixin.util.AccessToken;

import com.google.gson.Gson;

public class WX_Token {

	public static AccessToken getAccessTokenByNet(){
		
		/*返回的accessToken*/
		AccessToken accessToken = null;
		
		/*得到的網路資訊*/
		StringBuffer strb = new StringBuffer();
		
		HttpURLConnection connection = null;
		
		//這是微信得到url_AccessToken所需的url
		String url_AccessToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+WX_Info.APPID+"&secret="+WX_Info.SECRET;
		
		try {
			
			//得到AccessToken的URL
			URL url = new URL(url_AccessToken);
			
			//開啟url
			connection = (HttpURLConnection)url.openConnection();
			
			//開啟連線
			connection.connect();
			
			//得到InputStream
			InputStream in = connection.getInputStream();
			
			//得到InputStreamReader
			InputStreamReader reader = new InputStreamReader(in);
			
			//得到BufferedReader
			BufferedReader breader = new BufferedReader(reader);
			
			String str = null;
			
			/*讀取網路資訊*/
			while(null != (str = breader.readLine())){
				
				strb.append(str);
				
			}
			
			//關閉breader
			breader.close();
			
			//關閉reader
			reader.close();
			
			//關閉in
			in.close();
			
			Gson gson = new Gson();
			
			accessToken = gson.fromJson(strb.toString(), AccessToken.class);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		if(null!=connection){
			
			connection.disconnect();
			
		}
		
		return accessToken;
		
	}
	
}