问题描述
我正在尝试使用 Google 驱动器列出文件.
I'm trying to use the Google drive to list files.
使用 https://stackoverflow.com/a/11280257 中的答案,我发现了一个我无法发现的问题原因.
Using the answer in https://stackoverflow.com/a/11280257 I found a problem that I can't discover the reason.
var clientId = '*********.apps.googleusercontent.com'; var apiKey = '##########'; var scopes = 'https://www.googleapis.com/auth/drive'; function handleClientLoad() { gapi.client.setApiKey(apiKey); window.setTimeout(checkAuth,1); } function checkAuth() { gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true},handleAuthResult); } function handleAuthResult(authResult) { var authorizeButton = document.getElementById('authorize-button'); if (authResult && !authResult.error) { authorizeButton.style.visibility = 'hidden'; makeApiCall(); } else { authorizeButton.style.visibility = ''; authorizeButton.onclick = handleAuthClick; } } function handleAuthClick(event) { gapi.auth.authorize({client_id: clientId, scope: [scopes], immediate: false}, handleAuthResult); return false; } function makeApiCall() { gapi.client.load('drive', 'v2', makeRequest); } function makeRequest() { var request = gapi.client.drive.files.list({'maxResults': 5 }); request.execute(function(resp) { for (i=0; i<resp.items.length; i++) { var titulo = resp.items[i].title; var fechaUpd = resp.items[i].modifiedDate; var userUpd = resp.items[i].lastModifyingUserName; var userEmbed = resp.items[i].embedLink; var userAltLink = resp.items[i].alternateLink; var fileInfo = document.createElement('li'); fileInfo.appendChild(document.createTextNode('TITLE: ' + titulo + ' - LAST MODIF: ' + fechaUpd + ' - BY: ' + userUpd )); document.getElementById('content').appendChild(fileInfo); } }); }
我有这个错误:
Uncaught TypeError: Cannot read property 'files' of undefined
在行中
var request = gapi.client.drive.files.list({'maxResults': 5 });
推荐答案
使用
var request = gapi.client.request({ 'path': '/drive/v2/files', 'method': 'GET', 'params': {'maxResults': '1'} });
而不是
var request = gapi.client.drive.files.list({'maxResults': 5 });
解决了问题!