2016-02-27 145 views
0

我一直在尝试一段时间,从用户的谷歌驱动器为我的网络应用下载设置文件。我能够使用JavaScript成功上传文件,但现在我无法使google example download代码正常工作以获取文件的内容。这是当前的代码。我能够获得文件的元数据。如何使用OAuth 2.0客户端ID下载谷歌驱动器文件?

function downloadFile(file) { 
    if (file.downloadUrl) { 
     var accessToken = gapi.auth.getToken().access_token; <-Error 
     var xhr = new XMLHttpRequest(); 
     xhr.open('GET', file.downloadUrl); 
     xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken); 
     xhr.onload = function() { 
      console.log(xhr.responseText); 
     }; 
     xhr.onerror = function() { 
      console.log("ERROR"); 
     }; 
     xhr.send(); 
    } else { 
     console.log("No file.downloadUrl"); 
    } 
} 

控制台错误说“无法读取属性‘的access_token’空的”,我想这可能是因为它需要一个API密钥,但我使用的客户端ID签名的人,是否有办法在不使用API​​密钥和客户端ID的情况下执行此操作?

+0

可能的重复 - http://stackoverflow.com/questions/23654749/google-app-engine-authorization-returning-null。你的请求没有被处理,因为'getToken'为空(这表明应用程序未被正确授权) – adjuremods

回答

0

您需要有一个API密钥才能与Google的任何API一起使用。 https://developers.google.com/loader/signup

为什么你不想注册一个?

+0

我的意思是我对此不太了解,但我已经与google api进行了交互。我可以使用我的客户端ID将文件上传到用户的云端硬盘。我不认为我需要API密钥和客户端ID。我也不知道如何将两者都集成到我的网络应用程序 – exiledwolf

+0

这是我的错误,你不应该需要一个驱动器的API密钥。由于认证错误,特定的错误更可能发生。我假设你在此之前进行身份验证? –

+0

您可能还想看看导出文件。 https://developers.google.com/drive/v3/reference/files/export –

相关问题