使用google drive API v3获取google文档的文件内容

时间:2016-09-08 02:13:04

标签: google-drive-api

有没有办法使用google drive API v3获取原生文件(谷歌文档)的内容?我知道API v2支持使用exportLinks属性,但它不再起作用或已被删除。

3 个答案:

答案 0 :(得分:6)

您还可以使用文件的webContentLink属性在云端硬盘中下载包含二进制内容(非谷歌驱动器文件)的文件。来自https://developers.google.com/drive/v3/reference/files

  

用于在浏览器中下载文件内容的链接。这是   仅适用于云端硬盘中具有二进制内容的文件。

示例(我使用方法get()从我的文件中检索webContentLink):

gapi.client.drive.files.get({
    fileId: id,
    fields: 'webContentLink'
}).then(function(success){
    var webContentLink = success.result.webContentLink; //the link is in the success.result object
    //success.result    
}, function(fail){
    console.log(fail);
    console.log('Error '+ fail.result.error.message);
})

使用google驱动器文件,导出方法可用于获取这些文件:https://developers.google.com/drive/v3/reference/files/export
此方法需要具有2个必需属性(fileId和mimeType)作为参数的对象。 可以看到可用的mimeType列表here

示例:

gapi.client.drive.files.export({
    'fileId' : id,
    'mimeType' : 'text/plain'
}).then(function(success){
    console.log(success);
    //success.result    
}, function(fail){
    console.log(fail);
    console.log('Error '+ fail.result.error.message);
})

您可以使用gapi.client.drive.files.getalt:"media"阅读非Google文档文件内容(例如文本文件)。 Official example。我的例子:

function readFile(fileId, callback) {
    var request = gapi.client.drive.files.get({
        fileId: fileId,
        alt: 'media'
    })
    request.then(function(response) {
        console.log(response); //response.body contains the string value of the file
        if (typeof callback === "function") callback(response.body);
    }, function(error) {
        console.error(error)
    })
    return request;
}

答案 1 :(得分:3)

如果您使用files.export,则不会获得任何可让您按v3 Migration guide中所述下载文件的链接。

例如使用try-it,我只得到一个MiMetype响应但没有可下载的链接:

[application/vnd.oasis.opendocument.text data] 

解决方法是直接下载。只需将FILE_ID替换为您的Google文档ID,然后在浏览器中执行即可。通过这个,我能够导出Google文档文件。

https://docs.google.com/document/d/FILE_ID/export?format=doc 

labnol's guide的解决方法。

答案 2 :(得分:2)

对于api的v3,您可以使用导出方法https://developers.google.com/drive/v3/reference/files/export