2017-09-22 54 views
1

我查詢的Microsoft Graph API來獲取OneDrive文件,如:獲得用戶的端點總是返回我的用戶數據,而不管ID的查詢

GET https://graph.microsoft.com/v1.0/me/drive/root/delta

有一個在driveItem資源lastModifiedBy小返回,但它只包含一個displayNameid。我需要基於該ID的用戶電子郵件。

所以,我試圖從these docs終點,那就是:

GET https://graph.microsoft.com/v1.0/users/{id}

具體來說,我已經試過的東西,如:

GET https://graph.microsoft.com/v1.0/users/45aa3379f269b493

但它總是返回完全相同的一組的數據(不管我通過哪個id),這是來自https://graph.microsoft.com/v1.0/me端點的數據。

我的範圍如下:

offline_access 
files.read.all 
user.read 
user.readbasic.all 
people.read 
contacts.read 
contacts.read.shared 

有什麼理由,這個端點沒有返回數據,我通過特定的用戶ID?或者,根據lastModifiedBy中提供的信息,是否有其他方法可以獲取用戶的電子郵件?

+0

你可以從v1.0/me/drive/root/delta'添加JSON嗎? –

+0

@ MarcLaFleur-MSFT https://pastebin.com/mtJWjtqe –

+0

該結果集中的所有文件都由您後期修改。我不知道你期待什麼,但通過該用戶'id'將導致與'/ me'相同 –

回答

1

看着你發佈的JSON,我發現你的文件有一個id使用格式xxxxxxxxxxxxxxxx!xxx(注意!)。這告訴我這是個人的Microsoft帳戶(MSA)。

由於這是一個Microsoft帳戶,因此除您自己之外沒有「用戶」。因此,圖表會忽略您提供的任何id,並始終返回您自己的配置文件(/me)。爲了使用/users,您需要連接到Azure Active Directory租戶。

您無法獲取其他MSA/Outlook.com帳戶的配置文件信息。如果這得到支持,它會在MSA的隱私/安全方面引入一個不可接受的漏洞。

+0

因此對於個人帳戶,是否沒有辦法獲取最後修改文件的用戶的電子郵件?因爲lastModifiedBy構面只返回displayName和id。 –

+0

這是正確的。圖形無法刺穿別人的Microsoft帳戶的信息提取信息。 –

相關問題