@odata.nextlink
을 사용하여 의 정보를 기반으로 Microsoft Graph에서 다음 데이터 페이지를 가져 오는 데 문제가 있습니다. 헤더에서 권한 부여 토큰을 사용하여 원시 GET을 사용하고 있습니다 (예 : 언어 API를 사용하지 않고 Curl을 사용하여 Powershell에서이 코드를 사용하고 있습니다). 다음 스 니펫에서 민감한 데이터를 삭제 한 후이를 x로 바꾸었지만 문제가있는 정보가 나타납니다. 첫 번째 GET 들어 Microsoft Graph NextLink 작동하지 않음
https://graph.microsoft.com/beta/drives/b!Gxxxxx-xxxxxxge/root:/ReallyBigFolder:/children?top=200
와 쿼리 예상대로 나는 200 개 항목과 응답을 얻을. 이 응답의 @odata.nextlink
필드는 $skiptoken=...
부분은 무작위로 보이는 숫자를 가지고, 위의 링크 된 마이크로 소프트 그래프 설명서의 예를 들어
https://graph.microsoft.com/beta/drives/b!Gxxxxx-xxxxxxge/root/children?top=200&$skiptoken=Paged%3dTRUE%26p_SortBehavior%3d0%26p_FileLeafRef%3d279%252ezip%26p_ID%3d208%26p_FileDirRef%3dMaintenance%2520Department%252fReallyBigFolder%26RootFolder%3dMaintenance%2520Department%252fReallyBigFolder
이지만, 광산 $skiptoken=Paged=TRUE&etc
있다. 문서가 작성된 이후로 API가 응답을 변경했거나 광산이 완전히 잘못되었을 수 있습니다.
문서에서 필자는이 URL을 불투명 한 값으로 사용할 수 있어야하며 수정하지 않고 그래프 API (물론 인증 토큰 포함)에서 가져올 수 있어야한다는 점을 이해합니다. 나는이 작업을 수행 할 때, 응답이 내가 다른 200 개 파일을 나열 얻을 것으로 기대하고 있습니다
{"@odata.context":"https://graph.microsoft.com/beta/$metadata#drives('b%21Gxxxxx-xxxxxxge')/root/children","value":[]}
, 아니 파일이 전혀 반환이 있고,이 루트를 가리키는 사라 경로를 표시하지 않고 그랬던 것처럼 하위 폴더보다.
또한 Graph Explorer에서 /beta
과 /v1.0
끝점을 모두 사용해 보았습니다. 동일한 방식으로 실패합니다.
어디로 잘못 가고 있습니까?
디버그에 대한 세부 정보로 편집 : 참고 : 그래프 탐색기는 헤더의 날짜 필드를 표시하지 않는 것으로 보이므로 이러한 값에 대해 Postman Chrome 플러그인을 사용하고 있습니다.
우선 GET 요청에 응답 헤더
Cache-Control →private
Content-Encoding →gzip
Content-Type →application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
Date →Fri, 26 May 2017 19:07:54 GMT
Duration →2033.3889
OData-Version →4.0
Transfer-Encoding →chunked
Vary →Accept-Encoding
client-request-id →6faf5d1d-a291-410a-b269-f4667187d7cb
request-id →6faf5d1d-a291-410a-b269-f4667187d7cb
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceB","ScaleUnit":"002","Host":"AGSFE_IN_11","ADSiteName":"CHI"}}
과 넥스트 링크 (보안을 위해 다소 모호한)를 넥스트 링크 생략 헤더 (변경되지 않은 헤더 생성 후
https://graph.microsoft.com/beta/drives/b!xxx-xxxge/root/children?$skiptoken=Paged%3dTRUE%26p_SortBehavior%3d0%26p_FileLeafRef%3d279%252ezip%26p_ID%3d208%26p_FileDirRef%3dGSH%2520Test%252fMaintenance%2520Department%252fReally%2520Big%2520Folder%252fReallyBigFolder%26RootFolder%3d%252fGSH%2520Test%252fMaintenance%2520Department%252fReally%2520Big%2520Folder%252fReallyBigFolder
으로
beta/drives/b!xxx-xxxge/root:/Really%20Big%20Folder/ReallyBigFolder:/children
이고) :
Date →Fri, 26 May 2017 19:15:17 GMT
Duration →512.9537
client-request-id →6ba61712-a423-4bc8-9376-cc62bf854329
request-id →6ba61712-a423-4bc8-9376-cc62bf854329
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceA","ScaleUnit":"001","Host":"AGSFE_IN_7","ADSiteName":"CHI"}}
및 결과 신체 :
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#drives('b%21xxxx-xxxxge')/root/children",
"value": []
}
MS Graph에서 얻은 응답에 "Request-ID"헤더와 "Date"헤더의 값을 포함 할 수 있습니까? 그러면 로그를 살펴보고 여기서 일어나는 일을 볼 수 있습니다. –
@RyanGregg 질문에 대한 편집에 헤더 정보가 포함되어 있습니다. –
감사합니다. Adam. 나는/드라이브/경로에 대한 쿼리를 위해 nextLink가 반환되는 방법에 버그가 있다는 것을 확인할 수있었습니다./me/drive에 대한 쿼리는 정상적으로 작동합니다. 우리는 수정 작업을하고 있습니다. –