web-dev-qa-db-ja.com

Google Drive API v3を使用してGoogleドキュメントのファイルコンテンツを取得する

グーグルドライブAPI v3を使用してネイティブファイル(グーグルドキュメント)のコンテンツを取得する方法はありますか? API v2がexportLinksプロパティでこれをサポートしていることは知っていますが、機能しなくなったか削除されました。

9
Johnny

APIのv3の場合、エクスポートメソッドを使用できます https://developers.google.com/drive/v3/reference/files/export

3
pinoyyid

ファイルのwebContentLink属性を使用して、ドライブにバイナリコンテンツのファイル(Googleドライブ以外のファイル)をダウンロードすることもできます。 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)を持つオブジェクトが必要です。利用可能なmimeTypesのリストを見ることができます 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以外のドキュメントファイルのコンテンツ(テキストファイルなど)を読み取ることができます。 公式の例 。私の例:

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;
}
6
phuwin

files.export を使用する場合、 v3移行ガイド に記載されているように、ファイルをダウンロードするためのリンクが表示されません。

たとえば、try-itを使用すると、MiMetype応答しか得られませんでしたが、ダウンロード可能なリンクはありませんでした。

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

この回避策は直接ダウンロードすることです。 FILE_IDをGoogle DocのfileIDに置き換えて、ブラウザで実行します。これにより、Googleのドキュメントファイルをエクスポートすることができました。

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

回避策については labnol's guide への謝辞。

4
noogui