2017-07-06 3 views
2

Je travaille avec l'API Office365 (Outlook) pendant un certain temps (https://outlook.office.com)Utilisez les deux API Microsoft Office365 (Outlook) et l'API graphique avec le même ordre d'idées

Maintenant, je dois être en mesure de télécharger des fichiers. J'ai trouvé que cela ne peut être fait avec l'aide d'un autre service. (par exemple, Microsoft Graph).

par exemple.https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_createuploadsession

Le problème est que mon authentification actuelle, je ne peux pas accéder à la fois des services en même temps:

Maintenant, j'utiliser la portée:

openid offline_access profile 
https://outlook.office.com/calendars.readwrite.shared 

Lorsque j'ajoute Files.ReadWrite.All, je ne suis plus en mesure d'accéder aux points d'extrémité de perspectives. Je reçois l'erreur suivante:

The audience claim value is invalid 'https://graph.microsoft.com' 

Y at-il un moyen d'être en mesure d'invoquer les services avec le même ordre d'idées? Peut-être une solution de contournement?

Répondre

1

Non, vous ne pouvez pas utiliser le même jeton. Les jetons d'accès sont limités à une API particulière via la demande d'audience. L'API Outlook rejette votre jeton car la revendication d'audience dans le jeton est définie pour Graph. La solution la plus simple pour vous consisterait simplement à utiliser Graph pour vos éléments liés à Outlook. Ils sont assez proches en termes de ce qui est pris en charge (voir https://docs.microsoft.com/en-us/outlook/rest/compare-graph-outlook).

Si vous utilisez un élément uniquement disponible sur le noeud final Outlook, vous devez utiliser un jeton distinct.

+0

Merci pour la réponse! J'ai deux questions: 1. Je ne considérerai que l'utilisation de Graph, mais si je comprends bien, tous les changements les plus récents viennent d'abord à Outlook? 2. Voulez-vous dire que si j'ai besoin d'utiliser les deux, je dois passer par le flux d'authentification sur: https://login.microsoftonline.com pour 2 fois avec des portées différentes (un pour les fichiers - c'est auth graph, et un pour les mails - c'est les perspectives)? – dvelopp

+0

1. Ils le font, mais l'écart se rétrécit sur ce point. 2. Oui, c'est ce que je veux dire. L'utilisateur ne devrait pas avoir à fournir un mot de passe la deuxième fois cependant. –

+0

Cependant, si je comprends bien, ils devront aller la page de connexion et appuyez sur le bouton "Autoriser" pour 2 fois. Est-ce une approche couramment répandue? Je veux dire, ce n'est pas un bon UX. – dvelopp