공유 링크를 통해 공유 디렉터리를 통해 액세스되는 OneDrive 파일을 다운로드하고 이동할 수있는 방법을 찾으려면 도움이 필요합니다.공유 링크 디렉터리에서 OneDrive 파일 다운로드 및 이동
나는 두 명의 사용자가 있습니다
- 사용자 'A'는 마이크로 소프트의 소비자입니다 및 정기적 원 드라이브 계정을 가지고 있으며,
- 'toshare'csv 파일 폴더에있는 'test.csv'를 개최한다 또한 test.csv을 다운로드 한 다음 하위 디렉토리/toshare/아카이브를 제외하고
에 파일을 이동 그래프 API를 사용해야합니다 정기적 마이크로 소프트 소비자 인 사용자 B는 '저는 현재 크롬을 사용하고 있습니다 앱 "고급 REST 클라이언트"를 사용하여 수동으로 REST cal 만들기 Microsoft의 온라인 "Graph Explorer"도구에서 네트워크 트래픽을 검사하여 Authenticated OAuth BEARER 토큰을 얻습니다. 호출을 이해하고 나면 Java App에 호출을 통합합니다.
나는 성공적으로 여기 지침을 따랐다 : https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/shares_get 폴더의 내용을 볼 수 있습니다.
사용자 'A'는 OneDrive에 들어가서 'toshare'폴더를 마우스 오른쪽 버튼으로 클릭하고 shareLink를 선택했습니다. 나는 토큰 공유에 shareLink를 변환 한 후 사용자 'B'와 같은 그래프 API와 다음 API 호출을 사용했다 :
GET https://graph.microsoft.com/v1.0/shares/<share-token>/root?$expand=children
이 나에게 디렉토리의 모든 파일을 보여줍니다, 'test.csv을'포함
이제이 정보를 사용하여 어떻게 test.csv를 다운로드 할 수 있습니까? 사용자 'B'는 파일 이름을 알지 못하지만 .csv 파일로 식별 할 수 있습니다 (코드에서이 작업을 수행 할 수 있음). 공유를 통해 파일을 다운로드하는 방법에 대한 많은 문서가없는 것처럼 보입니다.
내가 들어 왔 가장 가까운이 나에게 파일 메타를 표시합니다 내 파일 오브젝트 아이들의 "WEBURL"속성을 다음 토큰 주에 그 전원을 켜고
GET https://graph.microsoft.com/v1.0/shares/<child-share-token>/root
전화를했다 -데이터. 그리고 나는 다운로드 대략 API 문서에 따라 다운로드하려고 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_downloadcontent
GET https://graph.microsoft.com/v1.0/shares/<child-share-token>/root/content
이 나는 사용자가 'A'로 전화를 걸 경우 작동하지만 사용자 'B'에 대한 작동하지 않기 때문에이 흥미 롭다 대신 고급 REST 클라이언트에서 403을 얻습니다. (나는 그래프 탐색기에서 실행하면, 나는 "URI가 잘못 인코딩 점유율이 사이트를."얻는 대신에, 나는 다른 실험으로 발견 한 이는 정말 권한 문제가 있다는 뜻.) 또한
GET https://graph.microsoft.com/v1.0/shares/<share-token>/root:/test.csv:/content
작동하지 않으면 반환 : "400 잘못된 요청"메시지와 함께 : "세그먼트 '루트에 리소스를 찾을 수 없습니다 :'." 경로 스타일 파일 탐색이 공유 디렉토리에서 작동하지 않는 것 같습니다.
이 시점에서 나는 오히려 붙어 있습니다. 파일을 다운로드 한 후 하위 디렉토리로 이동하여 이미 읽었 음을 나타냅니다. OneDrive for Business에서도이 기능을 사용하고 싶습니다. 다른 날을 떠날거야.
어떤 통찰력이 큰 감사 것, 제레미
이후, 나는 프로그램 방식으로 주식 접근법을 다뤄려고 애를 썼습니다. 우리는 이제 위임 된 권한을 사용하여 사용자 디렉토리에 명시 적으로 액세스합니다. 그 문서는 매우 명확하고 잘 작동합니다. – fei0x