React Native Requires Chilkat v11.0.0+
React Native
Calendar: Refresh Expired OAuth2 Access Token
See more Microsoft Calendar Examples
Refreshes an expired OAuth2 access token.Chilkat React Native Downloads
import { FileAccess, Http, HttpRequest, HttpResponse, JsonObject } from '@chilkat/react-native'
async function chilkatExample() {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const json = new JsonObject();
try {
json.loadFile('qa_data/tokens/msGraphCalendar.json');
} catch {
return;
}
const req = new HttpRequest();
req.addParam('grant_type', 'refresh_token');
req.addParam('redirect_uri', 'http://localhost:3017/');
req.addParam('client_id', 'MICROSOFT-GRAPH-CLIENT-ID');
req.addParam('client_secret', 'MICROSOFT-GRAPH-CLIENT-SECRET');
req.addParam('refresh_token', json.stringOf('refresh_token'));
req.addParam('scope', 'openid profile offline_access user.readwrite calendars.readwrite files.readwrite');
const http = new Http();
req.httpVerb = 'POST';
req.contentType = 'application/x-www-form-urlencoded';
const resp = new HttpResponse();
try {
await http.httpReqAsync('https://login.microsoftonline.com/common/oauth2/v2.0/token', req, resp);
} catch {
console.log(http.lastErrorText);
return;
}
// Load the JSON response.
json.load(resp.bodyStr);
json.emitCompact = false;
// Show the JSON response.
console.log(json.emit());
console.log(`Response status code: ${resp.statusCode}`);
// If the response status code is not 200, then it's an error.
if (resp.statusCode !== 200) {
return;
}
// Save the refreshed access token JSON to a file for future requests.
const fac = new FileAccess();
fac.writeEntireTextFile('qa_data/tokens/msGraphCalendar.json', json.emit(), 'utf-8', false);
console.log('Success.');
}