Skip to content

Instantly share code, notes, and snippets.

@Sunil02kumar
Last active September 23, 2019 05:50
Show Gist options
  • Select an option

  • Save Sunil02kumar/290f392d7565cf3dbfdfcb3057fe206d to your computer and use it in GitHub Desktop.

Select an option

Save Sunil02kumar/290f392d7565cf3dbfdfcb3057fe206d to your computer and use it in GitHub Desktop.
Box API-How to Regenerate Access Token from Refresh Token
public class SK_BoxAPIUtility {
//static method to get access token from refresh token
public static List<string> regenerateAccessToken(string clientId, string clientSecret, string refresh_token){
list<string> tokenlist = new List<string>();
HttpRequest req = new HttpRequest();
string endpointUrl='https://api.box.com/oauth2/token';
req.setbody('grant_type=refresh_token'+
'&refresh_token='+refresh_token+
'&client_id='+clientId+
'&client_secret='+clientSecret);
req.setMethod('GET');
req.setEndpoint(endpointUrl);
req.setTimeout(120000);
//Send request to Box
HTTPResponse res=performCallout(req);
System.debug('*response body:'+res.getBody());
string Response=res.getBody();
System.debug(Response);
// Parse JSON response to get refresh_token values.
JSONParser parser = JSON.createParser(Response);
while (parser.nextToken() != null) {
if ((parser.getCurrentToken() == JSONToken.FIELD_NAME)){
String fieldName = parser.getText();
parser.nextToken();
if(fieldName == 'access_token') {
string newaccessToken=parser.getText();
tokenlist.add(newaccessToken);
}if(fieldName == 'refresh_token') {
string newrefreshToken=parser.getText();
tokenlist.add(newrefreshToken);
}
}
}
system.debug('*****tokenlist:'+tokenlist);
return tokenlist;
}
public static HttpResponse performCallout(Httprequest req){
Http h1 = new Http();
HttpResponse resp = new HttpResponse();
if(!Test.isRunningTest()){
resp= h1.send(req);
}
return resp;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment