2017-01-27 1 views
1

Google 드라이브 API v3을 사용하여 파일을 검색하고 있습니다. 파일과 목록 파일을 업로드 할 수 있지만 files.get 호출은 'false'를 반환합니다. 나는 "고도 '미디어'"제거하면 문서가 (https://developers.google.com/drive/v3/reference/files/get)Javascript Google 드라이브 API가 응답으로 'false'를 반환하는 이유는 무엇입니까?

var contentRequest = gapi.client.drive.files.get({ 
    fileId: fileId, 
    alt: 'media' 
    }); 
    contentRequest.execute(function(resp) { 
    console.log(resp); // resp = false 
    }); 

꽤 스파 스 문서에 설명 된대로 매개 변수를, 나는 다시 메타 데이터를 얻을.

gapi.client.request 
    ({ 
    'path': '/drive/v3/files/'+fileId, 
    'method': 'GET', 
    'params': {'fileId': fileId, 'alt': 'media'}, 
    'headers': {'Authorization': 'Bearer ' + gapi.auth.getToken().access_token } 
    }).execute(function(file) { 
     // file = false 
     }); 

난 도망 응답이 JSON-구문 분석하지 경우 '거짓'이라고 말한다 구글 클라이언트 REST API 문서에 묻혀 찾을 수 있다는 희망의 유일한 이동 경로 : 나는 또한 사용하여 시도했습니다. https://developers.google.com/api-client-library/javascript/features/promises

파일 형식이 차이가없는 것으로 보입니다. 지금까지 .html 및 .txt를 시도했습니다.

답변

0

나는 이것이 당신이 찾고있는 링크입니다 믿는다)

파일을 다운로드

https://developers.google.com/drive/v3/web/manage-downloads

이 최소한 읽기 액세스 할 수 있도록 사용자가 필요합니다. 또한 앱에 파일 콘텐츠를 읽을 수있는 권한이 있어야합니다. 예를 들어, drive.readonly.metadata 범위를 사용하는 앱은 파일 내용을 다운로드 할 권한이 없습니다. 편집 권한이있는 사용자는 viewersCanCopyContent 필드를 true로 설정하여 읽기 전용 사용자의 다운로드를 제한 할 수 있습니다.

+0

이 질문에 대답하지 않습니다. 나는 같은 문제를 겪고 있고 이미 참조 된 링크를 읽고 따라 갔다. 요청에 {driveId : id, alt : 'media'}를 사용하여 드라이브에 대한 전체 액세스 권한을 갖는 응답 요청으로 false가 표시됩니다. –

0

콜백의 두 번째 매개 변수를 사용해야합니다.이 매개 변수에는 원시 응답이 포함되어야합니다.

request.execute(function(jsonResp, rawResp) { 
    console.log('rawResp: ', rawResp); 
    var respObject = JSON.parse(rawResp); // rawResp is encoded JSON string with header, body, etc. 
    var respBody = respObject.gapiRequest.data.body; // in my case here it outputs the text of my txt file 
}); 

요청이 성공하거나 실패했을 때 실행되는 콜백 함수. jsonResp에는 JSON으로 구문 분석 된 응답이 들어 있습니다. 응답이 JSON이 아니면이 필드는 false가됩니다. rawResp는 HTTP 응답입니다. JSON이며 body, headers, status 및 statusText 필드가 포함 된 객체로 파싱 할 수 있습니다.

SRC : https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientrequest

P.S. Docs에서 "JSON을 파싱 할 수 없음"에 대한 좋은 발견! 이 문제를 해결하는 데 도움이되었습니다!

관련 문제