高度なドライブ サービスを使用すると、 Google ドライブ API を Google Apps Script で使用できます。Apps Script の組み込みドライブ サービスと同様に、この API を使用すると、スクリプトで Google ドライブ内のファイルやフォルダの作成、検索、変更を行うことができます。ほとんどの場合、組み込みサービスの方が使いやすいですが、この高度なサービスでは、カスタム ファイル プロパティやファイルとフォルダのリビジョンへのアクセスなど、いくつかの追加機能が提供されます。
これは高度なサービスであり、使用する前に有効にする 必要があります。
リファレンス
このサービスの詳細については、Drive API のリファレンス ドキュメントをご覧ください。Apps Script のすべての高度なサービスと同様に、高度なドライブ サービスでは、公開 API と同じオブジェクト、メソッド、パラメータを使用します。詳細については、メソッドのシグネチャの
決定方法をご覧ください。
また、JavaScript では delete が予約語であるため、Drive API で delete という名前のメソッドは、高度なサービスでは remove という名前になります(Drive.Permissions.remove() など)。
問題の報告やその他のサポートについては、Drive API サポート ガイドをご覧ください。
サンプルコード
このセクションのコードサンプルでは、バージョン 3 の API を使用しています。
ファイルをアップロード
次のコードサンプルは、ユーザーのドライブにファイルを保存する方法を示しています。
フォルダを作成
次のコードサンプルは、ドライブにフォルダを作成する方法を示しています。
/**
* Creates a new folder.
*/
function createFolder() {
var folderMetadata = {
'name': 'New Folder',
'mimeType': 'application/vnd.google-apps.folder'
};
var folder = Drive.Files.create(folderMetadata);
Logger.log('Folder ID: ' + folder.id);
}
ファイルを検索する
次のコードサンプルは、クエリ文字列を使用してファイルを検索する方法を示しています。
/**
* Searches for files with a specific name.
*/
function searchFiles() {
var query = 'name contains "Project Plan" and trashed = false';
var files = Drive.Files.list({
'q': query,
'fields': 'files(id, name, mimeType)'
});
if (files.files && files.files.length > 0) {
for (var i = 0; i < files.files.length; i++) {
var file = files.files[i];
Logger.log('%s (ID: %s)', file.name, file.id);
}
} else {
Logger.log('No files found.');
}
}
フォルダの一覧表示
次のコードサンプルは、ユーザーのドライブ内の最上位フォルダを一覧表示する方法を示しています。結果の完全なリストにアクセスするには、ページトークンを使用します。
リビジョン リストを取得
次のコードサンプルは、指定されたファイルのリビジョンを一覧表示する方法を示しています。一部のファイルには複数のリビジョンが存在する可能性があるため、結果の完全なリストにアクセスするにはページトークンを使用する必要があります。
ファイル プロパティを追加
次のコードサンプルでは、appProperties フィールドを使用して、ファイルにカスタム プロパティを追加しています。カスタム プロパティはスクリプトにのみ表示されます。他のアプリにも表示されるカスタム プロパティをファイルに追加するには、代わりに properties フィールドを使用します。詳細については、カスタム ファイル
プロパティを追加するをご覧ください。
ファイルにユーザーを追加
次のコードサンプルは、ユーザーをファイルの編集者として追加し、メール通知を抑制する方法を示しています。
/**
* Adds a user to a file as an editor without sending an email notification.
*/
function addEditor() {
var fileId = '1234567890abcdefghijklmnopqrstuvwxyz';
var userEmail = 'bob@example.com';
var request = {
'role': 'writer',
'type': 'user',
'emailAddress': userEmail
};
Drive.Permissions.create(request, fileId, {
'sendNotificationEmail': false
});
}