我正在尝试使用图形 API (v1.0) 来搜索我们团队的 sharepoint/onedrive 文件夹中的文件和文件夹,但是当使用仅限应用程序的令牌时,我始终得不到任何结果/search(...)
要求我试试。
我已注册并申请https://apps.dev.microsoft.com https://apps.dev.microsoft.com并已请求并同意中所述的权限API文档 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/driveitem_search;
User.ReadWrite.All
, Group.Read.All
, Sites.Read.All
, Sites.ReadWrite.All
, Group.ReadWrite.All
, Sites.Manage.All
, Files.ReadWrite.All
, User.Read.All
, Files.Read.All
, Sites.FullControl.All
当我请求令牌时https://login.microsoftonline.com/ https://login.microsoftonline.com/我可以在有效负载中看到授予的权限。
使用此令牌,我可以成功访问驱动器并使用以下命令检索有关其内容的信息drive/root
我有一个小型测试文件夹结构,其中包含一些简单的文本文件。
我可以通过调用确认此令牌使我可以访问我的文件和文件夹drives/{driveid}/items/{folderid}/children
递归地构建一个完整的树结构。
但是,当我尝试在驱动器中搜索我知道存在的文件名或文本短语时,无论我使用何种路径或搜索词组合,都根本得不到任何结果。我从未见过仅应用程序令牌的搜索结果。
我尝试过的例子;
sites/root/drive/search(q='test')
drive/root/search(q='test')
drives/{driveid}/search(q='test')
drives/{driveid}/root/search(q='test')
短语“test”既作为文件名存在,也存在于某些文件的文本内容中。
我得到一个HTTP:200
响应而是值集合https://graph.microsoft.com/v1.0/$metadata#Collection(driveItem)
总是空的。
我正在我的应用程序 (Coldfusion) 中构建 http 请求,而不是使用 SDK。
我想知道我是否遇到编码问题,因此尝试了对 url 的搜索部分进行 url 编码的各种方法(q='test')
ETC。
我还尝试使用 Postman 和 cUrl 运行相同的请求,但结果是相同的。空的。
唯一有效的是,当我使用 Graph Explorer 尝试相同的搜索时,我得到了我期望看到的结果。
我知道 Explorer 使用不同类型的令牌,所以我想知道这是否是与我的令牌仅适用于应用程序相关的问题。
有谁知道如果.../search()
实际上适用于仅应用程序令牌吗?