我试图理解Microsoft,但我发现它们有点令人困惑。在OneDrive上有一个与我共享的excel文件。我想用微软的图表下载它。我能够生成这个应用程序,并设置它的配置和权限,这样我就可以发送请求并获得一个授权令牌,可以用来发送请求。
然而,我有一些问题,即使在图形资源管理器,我使用作为我的帐户,而不是作为应用程序。
为了找出与我共享的文件Id,我使用了OneDrive下的“与我共享的文件”API。(https://graph.microsoft.com/v1.0/me/insights/shared)
我复制了从那里获得的id,并在Excel类别下的“工作簿中的工作表”API中使用了它。https://graph.microsoft.com/v1.0/me/drive/items/{drive-item-id}/workbook/worksheets)
然而,我得到的项目没有发现错误。问题是,尽管我可以在oneDrive上看到它是一个共享对象,但我似乎无法使用第二个API打开它。
如何下载通过OneDrive与我共享的Excel文件?我应该使用哪个API?发送请求的应用程序是一个独立的应用程序,它未经人工授权就会发送请求。这里我不知道正确的术语,但是微软不允许它有一个/me请求,它得到了"/me request is only valid with delegated authentication flow.",因此我可能需要一些方法让应用程序看到oneDrive链接。但我找不到工作方法。
发布于 2022-11-29 22:07:39
错误消息"/me请求仅对委派的身份验证流有效。“意思是这么说的。使用图形API创建应用程序的主要方法有两种。应用授权和代表用户授权.因此,错误消息告诉您您正在使用应用程序授权,而API路径/me只能代表用户授权(例如委托身份验证)访问。这是有意义的,因为当使用应用程序授权时,我是谁?
API端点说明了它们支持的身份验证类型。如果您使用工作表API,它在权限部分下面写着:
权限类型-权限(至少到最特权的权限) 委托(工作或学校帐户)- Files.ReadWrite 委托(个人Microsoft帐户)-不支持。 应用程序-不支持。
它告诉我们,不支持个人Microsoft帐户的应用程序和委托,而工作/学校帐户的委托则需要Files.ReadWrite权限。
要下载驱动器项,可以使用下载项目API。
这既支持应用程序权限,也支持删除权限。但是,对于应用程序权限,您将无法使用/me路径。您很可能不得不使用以下内容:
/users/{userId}/驱动器/item/{item-id}/content
我假设您的文件存储在一个工作帐户中--一个驱动器存储,而不是存储在其他存储位置(AD组等)。
https://stackoverflow.com/questions/74617415
复制相似问题