2017-07-06 93 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