使用仅应用程序令牌时 Microsoft Graph API /search() 是否有效

2024-05-08

我正在尝试使用图形 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()实际上适用于仅应用程序令牌吗?


有谁知道 .../search() 是否真的适用于仅应用程序令牌?

答案是肯定的,../search() 实际上适用于仅应用程序令牌

根据我的测试,以下搜索 API 适用于仅应用程序令牌

https://graph.microsoft.com/v1.0/drive/root/microsoft.graph.search(q='test')

    https://graph.microsoft.com/v1.0/drives/{driveid}/root/microsoft.graph.search(q='test')

    https://graph.microsoft.com/v1.0/drives/{driveid}/microsoft.graph.search(q='test')

https://graph.microsoft.com/v1.0/sites/root/drive/search(q='test')

对于权限配置,只需输入“文件.Read.All、文件.ReadWrite.All、站点.Read.All、站点.ReadWrite.All" 进入项目配置文件中的 GraphScopes 作为文档指出 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/driveitem_search.

以上答案基于您的描述:****注册应用程序于http://apps.dev.microsoft.com/ http://apps.dev.microsoft.com/。您可以忽略 SDK,尽管它是最好的选择。如果你没有使用 GraphScopes 的项目配置,则需要将范围传递给身份验证请求,操作起来很困难。

如果您的应用程序仅意味着注册应用程序在线SharePoint https://%3Ccompanyname%3E.sharepoint.com/_layouts/15/appregnew.aspx,那么 Graph Search API 将无法工作。 SharePoint 不直接与 Graph 共享 AccessToken。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用仅应用程序令牌时 Microsoft Graph API /search() 是否有效 的相关文章

随机推荐

  • 有没有一种巧妙的方法来获取表示层中背景图像的归属?

    我有一张由 CSS 引入的 CC BY 图像 用作背景 这张图片纯粹是为了它的外观 绝对不是内容 我需要在某个地方对此图像进行归属 显然最好将此归属链接到提供该图像的好心人 但是 我真的不想将链接文本放入 HTML 中 因为这会破坏实际内容
  • openssl_pkey_get_public 未打开公钥,“无起始行”错误

    当生成公钥然后用函数读取它时openssl pkey get public publicKeyResource bool false 和消息 错误 0906D06C PEM 例程 PEM read bio 无起始行 privateKey o
  • 向量迭代器的索引

    所以我有一个基本的向量迭代器 它看起来像 for std vector
  • 引用 MongoDB Aggregation Pipeline 中的整个文档

    我可以使用 运算符引用 MongoDB 聚合管道中属性的各个值 但是 我如何访问 引用 整个文档 UPDATE 提供一个示例来解释场景 这是我正在尝试做的事情的一个例子 我有一系列推文 每条推文都有一个成员 集群 它指示特定推文属于哪个集群
  • ASP.NET Web API 中处理程序和过滤器的依赖注入

    我正在尝试连接我的 Web Api 项目以使用 Castle Windsor 进行 IoC 我已经通过以下方式为我的控制器做到了这一点这篇优秀的文章 http blog ploeh dk 2012 10 03 DependencyInjec
  • jquery如何捕获动态生成按钮的点击事件

    我看到有这个语法用于检测任何按钮单击 但是如果我只想检测页面上的特定按钮怎么办 编辑 这对于开始时设置的按钮来说似乎很好 但在我的例子中 我使用 jquery 动态创建它们 看来这些按钮没有击中此代码 有任何想法吗 您需要将 click 绑
  • THREE.JS,忽略父级的轮换

    我试图使子对象跟随父级位置并表现得像一个普通的子对象 但是我希望它保持其旋转不变 在不影响性能的情况下 最好的方法是什么 我的CPU预算很紧张 已经运行了2个工作线程并且有很多对象 是否有设置只允许孩子的位置受到影响 同样重要的是 当父级旋
  • TypeError: 使用 ajax 时 google.load 不是一个函数

    我正在使用 Google 图表 termcloud 来显示一些数据 我可以让它作为页面上的静态功能正常工作 但是当我尝试通过 ajax 加载图表及其资产时 它似乎一直抛出错误 TypeError google load is not a f
  • 如何在 MongoDB 2.6 副本集上启用 HTTP 控制台

    我正在运行一个 3 服务器 MongoDB 副本集 我最近从 2 4 升级到 2 6 在 2 4 中 我能够访问所有三台服务器上的 HTTP 控制台 无论它们是主服务器还是辅助服务器 现在 2 6 需要不同的配置设置来启用控制台 Disab
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 构造一个逻辑表达式来计算字节中的位数

    在面试新候选人时 我们通常要求他们编写一段 C 代码来计算给定字节变量中值为 1 的位数 例如 字节 3 有两个 1 位 我知道所有常见的答案 例如右移八次 或索引 256 个预先计算结果的常量表 但是 有没有更聪明的方法而不使用预先计算的
  • 对 EmberJS 对象的反思?如何在事先不知道密钥的情况下查找属性密钥列表

    如果您事先不知道所有密钥 是否有办法检索 EmberJS 对象的 set at creations 属性 通过检查器 我看到所有似乎存储在元对象中的对象属性values哈希 但我似乎找不到任何方法来恢复它 例如object getPrope
  • UIPageControl 未显示

    我使用以下内容来显示滚动视图和页面控制 scrollView UIScrollView alloc initWithFrame CGRectMake 0 0 320 179 pageControl UIPageControl alloc i
  • 如何使用 __getattr__ 将方法委托给属性?

    我有以下课程 class MyInt def init self v if type v int raise ValueError value must be an int self v v def getattr self attr re
  • AngularJS 过滤器精确匹配

    我需要按类别过滤项目列表 我希望用户能够单击按钮 然后将过滤器应用于列表 目前 我已经在一定程度上做到了这一点 比方说 我有一个电影列表 呈现如下 li movie title li 我还有一个电影类型列表 呈现为按钮 单击时将过滤电影列表
  • 如何在 Ruby On Rails 7 中使用导入映射访问 JS 函数?

    我是 JS 模块和导入映射的新手 现在我正在使用 Ruby on Rails 7 但我找不到一种方法来让它工作 Js模块 proposals js function openProposalMirror 应用程序 js import as
  • 如何用NULL替换空格

    我在 sql server 2012 中有一个包含空格的列 我想用 NULL 替换这些空白 我已经编写了以下查询 但它不起作用 SELECT replace COLUMN1 NULL FROM Orders 如何实现上述功能 提前致谢 Us
  • RxAndroid - 单击时重试可观察

    我在 Android 应用程序中使用 rxAndroid 和 rxKotlin 来异步处理网络请求 现在我想仅在单击 Snackbar 按钮后重试失败的网络请求 我现在的代码 val citiesService ApiFactory cit
  • Scala 如何将 Map 转换为元组的可变参数?

    在 Scala Play 2 2 x 测试的背景下 我有一个Map String String 我需要将其传递给接受的函数 String String 即一个可变参数 String String tuple e g val data Map
  • 使用仅应用程序令牌时 Microsoft Graph API /search() 是否有效

    我正在尝试使用图形 API v1 0 来搜索我们团队的 sharepoint onedrive 文件夹中的文件和文件夹 但是当使用仅限应用程序的令牌时 我始终得不到任何结果 search 要求我试试 我已注册并申请https apps de