2017-07-06 76 views
2

我一直使用Office365(展望)API一会儿(https://outlook.office.com都使用微软Office365(展望)API和图形API与同样

现在我需要能够上传文件。我发现它只能使用其他服务完成。 (e.x. Microsoft Graph)。

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

的问题是,我目前的身份验证,我不能同时使用这两种服务:

现在我使用范围:

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

当我向其添加Files.ReadWrite.All时,我不再能够访问Outlook终端。我收到以下错误:

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

有没有办法能够使用相同的标记调用这两个服务?也许有任何解决方法?

回答

1

不,您不能使用相同的标记。通过观众声明,访问令牌被限定在特定的API中。 Outlook API会拒绝您的令牌,因为令牌中的受众群体声明是为图表设置的。

最简单的解决方案是使用Graph来处理与Outlook相关的东西。就支持的内容而言,它们非常接近(请参阅https://docs.microsoft.com/en-us/outlook/rest/compare-graph-outlook)。

如果您正在使用的东西只能在Outlook端点上使用,那么您需要使用单独的令牌。

+0

感谢您的回答! 我有两个问题: 1.我会考虑只使用Graph,但据我了解,所有最近的变化都是先来看Outlook的? 2.你的意思是,如果我需要使用两者,我需要通过认证流程: https://login.microsoftonline.com 2次与不同的范围(一个用于文件 - 这是图形认证和一个邮件 - 这是前景)? – dvelopp

+0

1.他们这样做,但差距正在缩小。是的,这就是我的意思。但用户不需要第二次提供密码。 –

+0

然而,据我所知,他们将不得不去登录页面,按“允许”按钮2次。这是普遍传播的方法吗?我的意思是,这不是一个好的用户体验。 – dvelopp