我已经创建了一个守护程序应用程序来访问Microsoft Graph API以检索有关我们需要通过从Cron运行的脚本下载的驱动器项的信息,但由于下载URL返回401响应,因此无法下载文件内容。
此处https://graph.microsoft.io/en-us/docs/authorization/app_only遵循授予令牌访问API的流程,并且创建的应用程序具有“对用户文件具有完全访问权限”的权限。
我可以成功运行用于获取文件信息的请求:
GET https://graph.microsoft.com/v1.0/users/{user_id}/drive/items/{item_id}
但是调用下载端点失败并显示401响应
GET https://graph.microsoft.com/v1.0/users/{user_id}/drive/items/{item_id}/content
它重定向到并在“@ microsoft.graph.downloadUrl”中返回的URI格式为:
https://{tenant_id}.sharepoint.com/personal/{user_id}/_layouts/15/download.aspx?UniqueId=XXX&access_token=XXX
我不确定graph.microsoft.com资源和{tenant_id} .sharepoint.com的经过身份验证的上下文之间是否存在问题。我们在应用程序中的两个API上添加了读/写用户文件权限。