Dart Requires Chilkat v11.0.0+
Dart
Azure OAuth2 Client Credentials Grant Flow
See more OAuth2 Examples
Demonstrates how to get an OAuth2 access token for an Azure Registered App using the Client Credentials Grant Flow.Note: Your Azure app must be registered as a single-tenant app to use client credentials.
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 http = CkHttp();
final req = CkHttpRequest();
req.addParam('client_secret', 'CLIENT_SECRET');
req.addParam('client_id', 'CLIENT_ID');
// See Understanding Scopes in Azure OAuth2 Client Credentials Flow
req.addParam('scope', 'https://graph.microsoft.com/.default');
req.addParam('grant_type', 'client_credentials');
// Note: Your Azure app must be registered as a single-tenant app to use client credentials.
// Use your own tenant ID, for example 4d8fdd66-66d1-43b0-ae5c-e31b4b7de5cd
final url = 'https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token';
req.httpVerb = 'POST';
req.contentType = 'application/x-www-form-urlencoded';
final resp = CkHttpResponse();
try {
http.httpReq(url, req, resp);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
final statusCode = resp.statusCode;
print('Response status code = $statusCode');
final json = CkJsonObject();
json.load(resp.bodyStr);
json.emitCompact = false;
print(json.emit());
// Sample successful output:
// {
// "token_type": "Bearer",
// "expires_in": 3599,
// "ext_expires_in": 3599,
// "access_token": "eyJ0eX...K0jOERg"
// }
if (statusCode == 200) {
json.writeFile('qa_data/tokens/azureClientCredentialsToken.json');
print('Success.');
} else {
print('Failed.');
}
}