Google Drive API v3を使用してGoogleドキュメントのファイルコンテンツを取得する
グーグルドライブAPI v3を使用してネイティブファイル(グーグルドキュメント)のコンテンツを取得する方法はありますか? API v2がexportLinksプロパティでこれをサポートしていることは知っていますが、機能しなくなったか削除されました。
APIのv3の場合、エクスポートメソッドを使用できます https://developers.google.com/drive/v3/reference/files/export
ファイルの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
)を持つオブジェクトが必要です。利用可能なmimeType
sのリストを見ることができます 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.get
でalt:"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;
}
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 への謝辞。