C# Microsoft Graph:在SharePoint驱动器上搜索DriveItems不会返回任何结果

C# Microsoft Graph:在SharePoint驱动器上搜索DriveItems不会返回任何结果,c#,microsoft-graph-api,onedrive,C#,Microsoft Graph Api,Onedrive,我在SharePoint驱动器中有文件,希望开发全文搜索。在图形资源管理器中,以下调用可以按文件名或内容查找我的文件: https://graph.microsoft.com/v1.0/drives/{my drive id}/root/search(q='my search word') 使用Microsoft.Graph NuGet包从my Azure托管的ASP.NET应用程序发出的相同调用始终返回空列表: await _client .Drives[{my drive id}]

我在SharePoint驱动器中有文件,希望开发全文搜索。在图形资源管理器中,以下调用可以按文件名或内容查找我的文件:

https://graph.microsoft.com/v1.0/drives/{my drive id}/root/search(q='my search word')
使用Microsoft.Graph NuGet包从my Azure托管的ASP.NET应用程序发出的相同调用始终返回空列表:

await _client
  .Drives[{my drive id}]
  .Root
  .Search({my search word})
  .Request()
  .GetAsync()
\u客户端
是经过身份验证的
图形服务客户端
。对于身份验证,我通过Azure AD端点(在Azure门户中注册的应用程序)接收令牌,而不是从v2端点(在应用程序注册门户中注册的应用程序)接收令牌。为了排除这个原因,我使用了v2端点,但没有区别

应用程序具有
文件.ReadWrite.All
权限范围。接收、保存和删除文件工作正常。只有搜索失败


作为测试,我给了我的应用程序Graph Explorer所拥有的所有权利,没有任何区别。我将URL与准备好的
GraphServiceClient
进行了比较,但看起来一切正常。

两天后描述了相同的问题。作者在评论中说,它昨天开始工作,他没有做任何改变。我今天用同样的旧代码测试了它。我能说什么?现在可以了!看起来这是微软方面的一个bug?

您使用的是
.Search(“Word”)
还是
.Search(“Word”)
?第一个(确切地说是.Search(pattern),其中pattern是一个字符串参数)。API生成的URL是正确的(q='my search word')。您是否尝试删除
search
方法?正如@Marclafler所说,可能是您对
搜索方法的
模式有误,您所说的“删除
搜索方法”是什么意思?我的测试模式只是一个单词。在我写的时候,我用
\u client.Drives[{my drive id}].Root.Search({my Search word}.Request().GetHttpRequestMessage().RequestUri.ToString()
检查了生成的url。我的意思是我们可以删除搜索方法来定位它是否是由搜索方法引起的问题。如果您的场景使用“app only”代币我们发现了一个问题,该问题在最近的一次推出中得到了修复。这也许可以解释为什么事情似乎开始工作,但不幸的是,我们不得不暂时禁用更改,这样事情可能会再次出现故障。请放心,这是一种暂时状态。