【发布时间】:2019-09-18 00:37:43
【问题描述】:
我正在使用 Microsoft Graph API 来构建 OneDrive 并与之集成。一切正常,我已经能够注册我的应用程序、获取令牌、导航 OneDrive 项目和下载文件。
我开始创建订阅以在用户执行某项操作时接收来自 OneDrive 的通知。当用户使用他们的“个人帐户”登录时,这没有任何问题,但是当他们使用“工作或学校”帐户时,我收到以下错误消息:
{
"error": {
"code": "ExtensionError",
"message": "Operation: Create; Exception: [Status Code: Forbidden; Reason: The caller does not have permission to perform the action.]",
"innerError": {
"request-id": "ffaf7fae-e0b0-4cd8-b911-bac4c2fb290a",
"date": "2019-09-18T00:18:40"
}
}
}
这是我创建订阅的调用:
curl -X POST \
https://graph.microsoft.com/v1.0/subscriptions \
-H 'Authorization: Bearer [access_token]' \
-H 'Content-Type: application/json' \
-H 'Host: graph.microsoft.com' \
-d ' {
"resource": "me/drive/root",
"changeType": "updated",
"clientState": "[email_Address]",
"notificationUrl": "https://webhook_url",
"expirationDateTime": "2019-09-19T04:43:47.6099364+00:00"
}'
用户拥有Files.ReadWrite.All 权限,基于documentation 应该足够了。
【问题讨论】:
-
@MarcLaFleur 基于documentation 委托权限不需要管理员同意
-
用户能否在浏览器中查看其 OneDrive?
-
@MarcLaFleur 是的,当然可以。如上所述,我可以毫无问题地调用 API,甚至可以下载文件。这里的问题是创建订阅。
-
供将来参考,过去曾出现过未正确配置 OD 的问题,典型症状是无法打开 OD UI。所以不,假设“他们当然可以”并不总是安全的。
标签: microsoft-graph-api onedrive