Microsoft Graph에 대한 비효율적 인 후속 요청을 피하기 위해 개인 사용자의 개인 사이트 (OneDrive for Business)에 대한 정보를 컬렉션에 포함 할 수 있어야합니다.
/users?$select=id,mail,mySite
을 통해 사용자 컬렉션을 가져올 때 Microsoft Graph API가 mySite
필드를 쿼리 할 수 없습니다. 이 사실은 Graph API docs에 설명되어 있습니다. 따라서 우리는 대안을 찾고 있었고, 건너 온 :
GET /users?$expand=drive
또는
GET /users?$expand=drives
drive
는 사용자의 개인 드라이브에 해당하고 mySite
과 동일한 필드 webUrl
을 가지고 있기 때문에
그러나 요청은 다음과 같은 오류가 발생 :
{
"error": {
"code": "InternalServerError",
"message": "Value cannot be null. Parameter name: source",
"innerError": {
"request-id": "15d69169-937a-4525-a904-e4107704d8f1",
"date": "2017-11-08T02:11:17"
}
}
}
이 유효한 문서화 관계이다. 또한 쿼리 매개 변수 $expand
의이 사용이 지원되지 않는다는 문서는 어디에도 없습니다. $expand
은 현재 beta/users
에 의해서만 지원되는 메모 인 here이지만, 여전히 같은 오류로 실패합니다.
GET /users?$expand=drive&$filter=drive ne null
: (위에서 언급 한 바와 같이)
오류의 잠재적 인 원인은 사용자가 아직 개인 사이트를 만들지 않은 것을 수, 따라서 우리는 단지 다음도 빈 목록을 반환하고 있습니다 가정 drives
시도
그러나 이것은 또한 Filter is not supported
이라는 오류를 반환합니다. 비록 그 $filter
같은 문서화되지 않은 사용할 수 없습니다. $expand=drive($select=webUrl;$filter=webUrl ne null)
은 문서화 된 here으로 지원되지 않습니다 (올바르게 이해하는 경우).
Office 기능 제안 플랫폼 인 Stack Overflow와 Microsoft 기술 커뮤니티 개발자 그룹을 성공적으로 검색했습니다.
아직 발견 API가 있지만 앱 전용 토큰을 사용하기 때문에 실제로는 옵션이 아닙니다. 또한 here에서 설명한 것처럼 Microsoft Graph에서도이를 대체해야하는 것처럼 보입니다.