0

모든 업로드 된 파일의 권한을 변경해야합니다. 내가 getIdForEmail의 오류가 발생했습니다getIdForEmail()이 Google 드라이브 API의 기능이 아닙니다. 권한

printPermissionIdForEmail(email) { 
var request = gapi.client.drive.permissions.getIdForEmail({ 
    'email': email, 
}); 
request.execute(function(resp) { 
    return ('ID: ' + resp.id); 
}); 

}

,이 코드를 추가 할 때 함수가 아닙니다.

gapi.client.init, gapi.auth2.getAuthInstance(), 

이 작동 중입니다. 하지만 왜 gapi.client.drive.permissions.getIdForEmail이 작동하지 않는 걸까요? 내가해야 할 일이 있니? Google 개발자 페이지에 있습니까? 내 코드에서?

답변

3

getIdForEmail은 Google 드라이브 v2에서만 사용할 수있는 방법입니다.

V3를 사용하면 다른 방식으로 전환해야합니다.

q 매개 변수를 사용하여 files.list을 수행하십시오. q 매개 변수에서 사용자가 변경할 권한을 제공하십시오. 여기서 사용하는 방법을 볼 수 있습니다 search 그러면 someuser가 소유자 인 모든 파일을 찾습니다. 소유자

그럼 당신은 당신이 다음 permissions.list를 사용하여 각 파일에 대한 권한을 확인하고 당신이 필요로하는 사람을 변경하는 것을 사용할 수 file resources의 목록을 얻을 것이다에

'[email protected]을'.

저는 JavaScript 개발자가 아니지만 문서에서 검색을 사용하여 목록 파일을 검색하는 방법을 보여줍니다.

/** 
    * Print files. 
    */ 
    function listFiles() { 
    gapi.client.drive.files.list({ 
     'q': "'[email protected]' in owners", 
     'fields': "*" 
    }).then(function(response) { 
     appendPre('Files:'); 
     var files = response.result.files; 
     if (files && files.length > 0) { 
     for (var i = 0; i < files.length; i++) { 
      var file = files[i]; 
      appendPre(file.name + ' (' + file.id + ')'); 
     } 
     } else { 
     appendPre('No files found.'); 
     } 
    }); 
    } 

는 업데이트 :

난 그냥이를 발견했다. About.get 같은 permissionId 당신이 찾고 있던 그 수 있을까 사용자, 사용자의 드라이브 및 시스템 기능

{ 
"user": { 
    "kind": "drive#user", 
    "displayName": "Linda Lawton", 
    "photoLink": "xxxx", 
    "me": true, 
    "permissionId": "060305882255734372", 
    "emailAddress": "[email protected]" 
} 
} 

에 대한 정보를 가져옵니다?

+0

여러분도 여기에 답변을 추가 할 수 있습니까? http://stackoverflow.com/questions/42788967/transfer-file-ownership-in-google-drive-api – JMA

+0

@JMA에서 이에 대한 업데이트를 확인하십시오. – DaImTo