Я пытаюсь прочитать задание Планировщик для пользователей моего арендатора. Поэтому я настроил согласие администратора для «Tasks.Read», «Tasks.Read.Shared», «Groups.Read.All», «Groups.ReadWrite.All» для приложения, которое делает это. Как упомянуто здесь: https://docs.microsoft.com/de-de/graph/api/planneruser-list-tasks?view=graph-rest-1.0&tabs=http Я определил свой код, чтобы получить токен, как упомянуто здесь: https://briantjackett.com/2018/12/13/introduction-to-calling-microsoft-graph-from-a-c-net-core-application/ Я вернул токен, и он действителен. (Проверено с помощью инструмента проверки токенов baerer.) Я подумал, что могу получить доступ к задачам из API Graph, например '/v1.0/users/ndomuserId‹/planner/tasks', но я вернул HTTP 401. Кто-нибудь может дать мне недостающую ссылку? Большое спасибо.
_appId = configuration.GetValue<string>("AppId");
_tenantId = configuration.GetValue<string>("TenantId");
_clientSecret = configuration.GetValue<string>("ClientSecret");
_clientApplication = ConfidentialClientApplicationBuilder
.Create(_appId)
.WithTenantId(_tenantId)
.WithClientSecret(_clientSecret)
.Build();
var graphClient = GraphClientFactory.Create(new DelegateAuthenticationProvider(Authenticate));
var result = await graphClient.GetAsync($"/v1.0/users/{userId}/planner/tasks")
public async Task<string> GetTokenAsync()
{
AuthenticationResult authResult = await _clientApplication.AcquireTokenForClient(_scopes)
.ExecuteAsync();
return authResult.AccessToken;
}
private async Task Authenticate(HttpRequestMessage request)
{
var token = await GetTokenAsync();
request.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
}