2013-02-24 236 views
1

我想讓JavaScript代碼列出Google Drive根目錄中所有文件的名稱。僅供參考:我是JavaScript新手。Google Drive API children.list

對於第一個功能,我複製了https://developers.google.com/drive/v2/reference/children/list中的代碼。

接下來的兩個函數是我自己的代碼。我的結果只是一堆「[對象對象],[對象對象],[對象對象],[對象對象]」。此輸出與我在Google雲端硬盤根目錄中的文件數量相符。但是,我想要的文件名或ID的,但我似乎無法獲得除「[對象對象]」之外的任何東西。

我試着改變「resp.items」爲「resp.kind」或「resp.selflink」,但後來我只是得到「undefined」。任何人都知道如何獲得關於這些文件的任何特定信息?如果重要,範圍是「https://www.googleapis.com/auth/drive」。

function retrieveAllFilesInFolder(folderId, callback) { 
    var retrievePageOfChildren = function(request, result) { 
    request.execute(function(resp) { 
     result = result.concat(resp.items); 
     var nextPageToken = resp.nextPageToken; 
     if (nextPageToken) { 
     request = gapi.client.drive.children.list({ 
      'folderId' : folderId, 
      'pageToken': nextPageToken 
     }); 
     retrievePageOfChildren(request, result); 
     } else { 
     callback(result); 
     } 
    }); 
    } 
    var initialRequest = gapi.client.drive.children.list({ 
     'folderId' : folderId 
    }); 
    retrievePageOfChildren(initialRequest, []); 
} 



function printToOutdiv (result){document.getElementById("outdiv").innerHTML=result;} 

function GetFilesButton(){ 
    gapi.client.load('drive', 'v2', function() {retrieveAllFilesInFolder('root',printToOutdiv);}); 
} 

回答

1

你所得到的結果是,可以通過索引來訪問對象的數組,如在result[0]result[1],等等。

一旦您獲得對其中一個對象的引用,就可以像result[0].id那樣訪問其屬性(例如id)。

+0

出於某種原因,我沒有成功的結果(0).id方法。但是,我在回調之前使用「resp.items [i] .id」嘗試了一個for循環,並得到了我所需要的。感謝您的幫助,Claudio。 – jeremydeanlakey 2013-02-27 16:27:27