Get the Tenant Id, client secret value(not the id).
Sample Code:
String strEndPoint = 'https://login.microsoftonline.com/{Enter_Tenant_Id}/oauth2/v2.0/token';
String strBody = 'grant_type=password&scope=https%3a%2f%2fgraph.microsoft.com%2f.default';
strBody += '&client_id={Enter_Client_Id}&client_secret={Enter_Client_Secret}';
strBody += '&username={Enter_Username}&password={Enter_Password}';
HttpRequest req = new HttpRequest();
req.setEndpoint( strEndPoint );
req.setMethod( 'POST' );
req.setHeader( 'Content-Length', String.valueOf( strBody.length() ) );
req.setHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
req.setHeader( 'Accept', 'application/json' );
req.setBody( strBody );
req.setTimeout( 120000 );
Http http = new Http();
HTTPResponse res = http.send( req );
System.debug( res.getBody() );
JSONParser parser = JSON.createParser( res.getBody() );
String strAccessToken;
while ( parser.nextToken() != null ) {
if ( ( parser.getCurrentToken() == JSONToken.FIELD_NAME ) &&
( parser.getText() == 'access_token') ) {
parser.nextToken();
strAccessToken = parser.getText();
break;
}
}
System.debug( 'Access Token is ' + strAccessToken );