我正在尝试使用“仅限应用”令牌从SharePoint Online下载文件。我可以使用此URL获取文件信息
https://graph.microsoft.com:443/v1.0/sites/{siteId}/drives/{driveId}/list/items/{itemId}/driveItem
但是当我尝试使用此网址下载文件时
https://graph.microsoft.com:443/v1.0/sites/{siteId}/drives/{driveId}/list/items/{itemId}/driveItem/content
我收到以下错误
403 FORBIDDEN
Content-Length →13
Content-Type →text/plain; charset=utf-8
Date →Fri, 13 Apr 2018 08:47:12 GMT
MicrosoftSharePointTeamServices →16.0.0.7604
P3P →CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"
SPIisLatency →2
SPRequestDuration →53
X-Content-Type-Options →nosniff
X-MS-InvokeApp →1; RequireReadOnly
X-MSDAVEXT_Error →917656; Access+denied.+Before+opening+files+in+this+location%2c+you+must+first+browse+to+the+web+site+and+select+the+option+to+login+automatically.
X-MSEdge-Ref →Ref A: B9E0C567B0CC4E60AEE93EEB8DC06AF1 Ref B: VIEEDGE0813 Ref C: 2018-04-13T08:47:12Z
X-Powered-By →ASP.NET
X-SharePointHealthScore →0
出了什么问题?
似乎在内部它生成了一个下载链接(... / _ layouts / 15 / download.aspx?UniqueId = ...),它与username / pwd令牌一起使用,但不适用于“仅限app”令牌< / p>
我有另一个办公室365订阅,使用“仅限app”令牌。另一个订阅有一个自定义域,但我看不到其他配置差异(两者都将LegacyAuthProtocolsEnabled属性设置为true,相同的共享选项...)
编辑:似乎我星期五正在测试的例子现在有效!!
答案 0 :(得分:1)
这个错误在上周三出现,并且正在向越来越多的租户传播。看来,Graph API / Sharepoint API生成的临时令牌无效。这会影响:
请尽快解决这个问题,因为我的应用程序已经崩溃且客户很生气
我也在这里创建了一个帖子,但没有回复:Temporary tokens issued by graph api is invalid since wednesday
您在此Mark LeFleur上找到了什么吗?
答案 1 :(得分:0)
您应该使用从@microsoft.graph.downloadUrl
响应中获取的/v1.0/me/drive/list/items/x/driveItem
属性来获取该文件的仅限应用的网址。
GET请求允许您下载文件。
答案 2 :(得分:0)
我已经执行了最初失败并且现在有效的相同示例,至少在我拥有的两个租户中。
我没有更改任何配置或源代码,因此它似乎是一个已修复的临时问题。