---
sourceType: official-guide
sourceTypeMatchedRule: fallback
slug: Social/sdk/android-sdk/dang-nhap/lay-access-token
title: Lấy Access Token
---
# 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

```java
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](/docs/Social/social-api/tham-khao/user-access-token-v4)
*   **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](/docs/Social/sdk/android-sdk/dang-nhap/xac-minh-lai-refresh-token)
*   **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:**

```java
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.
