MS Graph API和DriveItem搜索不适用于客户端凭据流

时间:2018-09-07 06:15:00

标签: node.js microsoft-graph onedrive adal

我正在尝试在驱动器上调用OneDrive API的搜索端点(即let model = [ { Question: '1 + 1', QuestionTypeId: 1, Answer: '2', QuizId: 1, Options: null }, { Question: '1 + 2', QuestionTypeId: 1, Answer: '3', QuizId: 1, Options: null } ] let result = knex('Items').insert(model) 。 在Graph Explorer上这可以正常工作,但是,在相同驱动器上没有客户端凭据流的任何搜索结果。

我的应用程序注册具有API文档(https://graph.microsoft.com/v1.0/drives/{drive-id}/root/search(q='mysearchterm')Files.Read.AllFiles.ReadWrite.AllSites.Read.All)中提到的所有必需的应用程序权限,并读取驱动器,驱动项,下载驱动器项目一切正常。不起作用的一件事是搜索驱动器项目。我只是得到一个空数组,没有错误;

Sites.ReadWrite.All

我正在将{strong> adal-node 与{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#Collection(driveItem)","value":[]}一起使用。

acquireTokenWithClientCredentials

我正在搜索的驱动器是SharePoint文档库。

1 个答案:

答案 0 :(得分:0)

一些重要提示:客户端凭据流需要在Azure Management Portal而非Applicaation Registeration Portal中注册应用。 Graph Explorer主要基于后一种,因此它们具有不同的后端代码现在很正常。也许他们将来会做同样的逻辑。

  

我们强烈建议您使用Microsoft Graph代替Azure AD Graph API来访问Azure Active Directory资源。现在,我们的开发工作集中在Microsoft Graph上,并且没有计划对Azure AD Graph API进行进一步的增强。在少数情况下,Azure AD Graph API可能仍然适用;有关更多信息,请参见Office开发人员中心中的Microsoft Graph或Azure AD Graph博客文章。

adal-node与Graph不同,因此您可以在图资源管理器中获得结果,但不能在NodeJS产品中得到结果。我们建议您使用最新的Graph API。

官方文档:https://docs.microsoft.com/en-us/javascript/api/overview/azure/activedirectory?view=azure-node-latest