Dart Requires Chilkat v11.0.0+
Dart
Group: Refresh OAuth2 Access Token
See more Microsoft Group Examples
Refreshes an expired or non-expired OAuth2 access token for the Microsoft Group REST API.Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
final json = CkJsonObject();
try {
json.loadFile('qa_data/tokens/msGraphGroup.json');
} on ChilkatException {
return;
}
final req = CkHttpRequest();
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 group.readwrite.all files.readwrite');
final http = CkHttp();
req.httpVerb = 'POST';
req.contentType = 'application/x-www-form-urlencoded';
final resp = CkHttpResponse();
try {
http.httpReq('https://login.microsoftonline.com/common/oauth2/v2.0/token', req, resp);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// Load the JSON response.
json.load(resp.bodyStr);
json.emitCompact = false;
// Show the JSON response.
print(json.emit());
print('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.
final fac = CkFileAccess();
fac.writeEntireTextFile('qa_data/tokens/msGraphGroup.json', json.emit(), 'utf-8', false);
print('Success.');
}