Chuyển tới nội dung chính

Lấy Access Token

Ở V4 SDK sẽ cung cấp 2 api để app lấy access token sau khi đã login

Lấy bằng Oauth Code: App dùng oauthCode SDK trả về ở bước Login

ZaloSDK.Instance.getAccessTokenByOAuthCode( Context ctx,String oacode, String codeVerifier, new ZaloOpenAPICallback() {
@Override
public void onResult(JSONObject data) {
int err = data.optInt("error");
if (err == 0) {
//clearOauthCodeInfo(); //clear used oacode

access_token = data.optString("access_token");
refresh_token = data.optString("refresh_token");
long expires_in = Long.parseLong(data.optString("expires_in"));

//Store data token in app cache
....
}
}
});

Tham số:

  • ctx: application context
  • oacode: code sau khi login
  • codeVerifier: code app tự gen. Tham khảo tại đây
  • callback: override method onResult để nhận json trả về.

Data trả về:

  • access_token: token để gọi api.
  • refresh_token: token để làm mới access_token. Thời gian 3 tháng. Sau khi hết hiệu lực, đi lại flow login mới. Xác minh refresh token bằng api tại đây
  • expires_in: thời gian hiệu lực của access_token (default 3600s)

Lưu ý: cần lưu lại Refresh Token để lấy lại AccessToken sau khi AccessToken hết hạn. Lấy bằng Refresh Token:

ZaloSDK.Instance.getAccessTokenByRefreshToken(Context ctx,String refresh_token, new ZaloOpenAPICallback() {
@Override
public void onResult(JSONObject data) {
int err = data.optInt("error");
if (err == 0) {
access_token = data.optString("access_token");
refresh_token = data.optString("refresh_token");
long expires_in = Long.parseLong(data.optString("expires_in"));

//Update new data token in app cache
....
}
}
});

Tham số:

  • ctx: application context
  • refreshToken: token lấy từ app cache.
  • callback: override method onResult để nhận json trả về.

Lưu ý: RefreshToken chỉ sử dụng để lấy AccessToken được một lần duy nhất. Sau khi lấy AccessToken xong thì cần lưu lại RefreshToken mới được trả về kèm với AccessToken.