1

Je souhaite utiliser les deux étendues https://outlook.office.com/Mail.Read et https://outlook.office.com/calendars.read pour lire un e-mail et un calendrier authentifiés. J'ai suivi le official .Net (WPF) tutorial pour authentifier l'utilisateur et obtenir un jeton. Cela fonctionne bien tant que ma portée est seulement l'une de celles ci-dessus. Dès que j'utilise les deux, je ne récupère pas un jeton lorsque j'essaie de l'obtenir.Utilisation de plusieurs étendues avec l'API Office 365

C'est essentiellement ce que je fais:

private static string[] scopes = { "https://outlook.office.com/Mail.Read", "https://outlook.office.com/calendars.read" }; 

// sign-in/authenticate logic (with PromptBehavior.Always/Never) from tutorial 

// here, the result doesn't contain a token: 
result = await authContext.AcquireTokenAsync(scopes, null, clientId, redirectUri, new PlatformParameters(PromptBehavior.Always, null)); 

Qu'est-ce que je fais mal?

Répondre

1

Essayez de changer la portée Mail.Read à tous les minuscules:

private static string[] scopes = { "https://outlook.office.com/mail.read", "https://outlook.office.com/calendars.read" }; 

Il ressemble à un bug dans la bibliothèque ADAL. J'ai déposé un issue on GitHub.

+0

Merci beaucoup pour ce commentaire. Cela a réglé mon problème. Je l'ai également essayé avec des lettres minuscules une fois, mais très probablement j'ai eu quelque chose d'autre qui a causé un autre problème ... En passant, dans la référence API Outlook REST API toutes les portées sont écrites en majuscules (et avec http au lieu de https) ... – casaout