我正在查询Microsoft Graph API以获取OneDrive文件,例如:
GET https://graph.microsoft.com/v1.0/me/drive/root/delta
返回的lastModifiedBy
资源中有一个driveItem
方面,但它只包含displayName
和id
。我需要基于该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 :(得分:1)
查看您发布的JSON
,我发现您的文件使用id
格式xxxxxxxxxxxxxxxx!xxx
(请注意!
)。这告诉我这是一个个人Microsoft帐户(MSA)。
由于这是一个Microsoft帐户,因此没有"用户"超越自己。因此,图表将忽略您提供的任何id
,并始终返回您自己的个人资料(/me
)。要使用/users
,您需要连接到Azure Active Directory租户。
您无法提取其他MSA / Outlook.com帐户的个人资料信息。如果得到支持,它将在MSA隐私/安全性中引入一个不可接受的漏洞。