Вы можете использовать Реквизит клиента запросить маркер вместо OAuth 2.0 Код Grant потока.
Вот запрос для справки:
POST https://login.microsoftonline.com/<tenantId>/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=<clientId>
&client_secret=<clientSecret>
&resource=https://outlook.office.com
А вот образец, используя Microsoft.IdentityModel.Clients.ActiveDirectory
запросить Hte фишку:
public static async Task<string> GetTokenAsync(string resource, string clientId, string secrect)
{
string authority = "https://login.microsoftonline.com/{yourTenantName}";
AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential clientCredential = new ClientCredential(clientId, secrect);
AuthenticationResult authResult=await authContext.AcquireTokenAsync(resource, clientCredential);
return authResult.AccessToken;
}
Более подробно о Office 365 REST, пожалуйста, обратитесь here.
Если я правильно понимаю, мне нужно заплатить, чтобы получить tenantId? –
Да. Вы можете войти в классический портал Azure, и вы можете получить tenantId с URL-адреса браузера, например https://manage.windowsazure.com/rekenoutlook.onmicrosoft.com#Workspaces/ActiveDirectoryExtension/Directory/{tenantId}/directoryQuickStart. –