2017-10-19 132 views
0

上周末开始的时候我收到的请求开始某个驱动器的改变列表时接收HTTP 404响应。404获得增量

首先,我保证驱动器存在:

GET:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root 

响应:

{ 
    <SNIP> 
    "id": "01JGC6XP56Y2GOVW7725BZO354PWSELRRZ", 
    "lastModifiedDateTime": "2017-08-05T22:16:24Z", 
    "name": "root", 
    "parentReference": { 
     "driveId": "b!n5c5t3PkRUiChm70bDc96e2yqnYltoJLq6IT5lxQYDZqi7UosRqoRa_3kgIU8qaV", 
     "driveType": "documentLibrary" 
    }, 
     "folder": { 
     "childCount": 5 
    }, 
    "root": {}, 
    "size": 0 
} 

既然存在,我想我应该能够得到一个变更它。我尝试使用驱动器api获取此驱动器的更改列表。

得到:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/view.delta?token=3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636434930370000000;67434848;%23;%23;%230 

响应:

SPRequestGuid →b972249e-e00a-4000-8ed0-963ef7dba0e6 
{ 
    "error": { 
     "code": "itemNotFound", 
     "message": "The resource could not be found." 
    } 
} 

没有找到,这感觉我错了。检查the docs它看起来像格式已经改变

采用最新OneDrive文件(delta而不是view.delta

得到:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/delta?token=3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636434930370000000;67434848;%23;%23;%230 

响应:

​​

使用/deltatoken=latest

GET:

https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/delta?token=latest 

响应:

SPRequestGuid →eb72249e-e08d-4000-8ed0-94ad25d9e424 
{ 
    "@odata.context": "https://SOMEURL/sites/ASITENAME/_api/v2.0/$metadata#items", 
    "@odata.deltaLink": "https://SOMEURL/sites/ASITENAME/_api/v2.0/drives/{id}/root/view.delta(token='3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636440196145030000;67696039;%23;%23;%230')", 
    "@delta.token": "3;%234;%231;3;28b58b6a-1ab1-45a8-aff7-920214f2a695;636440196145030000;67696039;%23;%23;%230", 
    "value": [] 
} 

让我们尝试微软图形API,看看是否有任何区别:

使用微软图形API:

GET: https://graph.microsoft.com/v1.0/drives/{id}/root/delta

响应:

client-request-id →34978ae4-57cf-44c2-b5aa-05b8271ab070 
request-id →34978ae4-57cf-44c2-b5aa-05b8271ab070 
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"East US","Slice":"SliceA","ScaleUnit":"003","Host":"AGSFE_IN_1","ADSiteName":"EST"}} 
{ 
    "error": { 
     "code": "itemNotFound", 
     "message": "The resource could not be found.", 
     "innerError": { 
      "request-id": "dc105a6d-8f37-4865-bede-cbd875729af7", 
      "date": "2017-10-19T14:26:47" 
     } 
    } 
} 

我发现one public issue这似乎非常相似,我遇到。

我的问题是:

  1. /view.delta现在被认为是过时?

  2. 如果我能找回一个驱动器,在一个情况下,我应该得到一个404请求三角洲是什么时候?

  3. 为什么使用?token=latest返回数据但没有它返回404

回答

0

您需要前缀与OneDrive.命名空间中的端点(你可以阅读Direct Endpoint Differences: Namespaces详情)。

所以对于Delta终点,而不是调用:

/_api/v2.0/drives/{id}/root/delta 

尝试调用

/_api/v2.0/drives/{id}/root/oneDrive.delta 

不过,我有点糊涂了关于微软图表例子。您拨打电话的语法(/v1.0/drives/{id}/root/delta)是正确的。

1

这绝对是行为的一种回归,它触发了具有验证公式的需要列或列的文档库。我们正在修复并将尽快部署。

+0

现在应该解决此问题 - 我们对给您带来的不便深表歉意。 – Brad