gpt4 book ai didi

python - 查询 OneDrive 中的文件返回空列表

转载 作者:行者123 更新时间:2023-12-01 07:34:10 25 4
gpt4 key购买 nike

我想创建一个简单的 Python 实用程序来与 OneDrive 上的文件交互。现在我正在使用我的公司帐户(因此我无法访问管理设置或对 OneDrive/Sharepoint/Azure 配置进行任何详细了解)。

经过快速谷歌搜索后,Microsoft Graph 似乎是最佳选择。我从复制the sample app开始一旦我验证了基本功能正在运行(它显示了我的个人资料中的名称等),我尝试添加一个简单的调用 me/drive/root/children为了列出根目录中的文件。我无法让它工作。

无论我做什么,服务器都会返回以下内容:

{'@odata.context': "https://graph.microsoft.com/v1.0/$metadata#users('my_oid')/drive/root/children", 'value': []}

此问题发生在 fewpeople以前,所以我试着沿着他们的足迹走。到目前为止我检查过:

  • 应用程序具有看似正确的静态权限:Files.Read , Files.Read.All , Files.ReadWrite , Files.ReadWrite.All , openid , profile , User.Read乃至 Sites.ReadWrite.All
  • 这些权限不需要管理员批准,所以我想它们应该有效
  • me/drive/root/?expand=children返回包含文件系统信息等的正确数据。
  • me/drive/root/children?$whatif返回查询的正确 URL:https://{tenant}-my.sharepoint.com/personal/{username}/_api/v2.0/drive/root/children
  • 如果我在具有事件 OneDrive session 的浏览器中打开此网址,它会返回 JSON,其中包含根文件夹中的文件列表(因此它确实是正确的)
  • 搞乱adal库并添加scope=files.readwrite.all所有 OAuth 查询(无变化)。
  • 使用 /user/{oid}/drive/root/children查询(没有变化,?$whatif 建议这映射到相同的共享点 URL)

这些都不起作用。这里可能缺少什么?

编辑:缺少的是用户同意 - 我已添加权限,但系统在尝试登录后从未询问我有关更改的信息。评论中提供的解决方案有效 - 您只需打开这样制作的 URL:

https://login.microsoftonline.com/{tenant}/oauth2/authorize?client_id={your_client_id}&response_type=code&response_mode=query&resource=https://graph.microsoft.com&state=12345&prompt=consent

同意新权限,瞧!干得好,女士。

最佳答案

更新权限后,用户和/或管理员必须再次同意。您可以通过 URL 请求强制用户同意,或者只需单击 Azure 门户中的“授予管理员同意按钮”。

https://login.microsoftonline.com/{tenant}/oauth2/authorize? client_id={your_client_id} &response_type=code &response_mode=query &resource=https://graph.microsoft.com &state=12345 &prompt=consent

关于python - 查询 OneDrive 中的文件返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57075785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com