カスタム プロパティやリビジョンなど、ファイルやフォルダを管理します。
高度なドライブ サービスを使用すると、Google Apps Script で Google Drive API を使用できます。Apps Script の組み込みの Drive サービスと同様に、この API を使用すると、スクリプトで Google ドライブのファイルやフォルダの作成、検索、変更を行うことができます。ほとんどの場合、組み込みサービスの方が使いやすいですが、この高度なサービスでは、カスタム ファイル プロパティへのアクセスや、ファイルとフォルダの変更履歴など、いくつかの追加機能が提供されます。
これは、使用前に有効にする必要がある高度なサービスです。
リファレンス
このサービスの詳細については、Drive API のリファレンス ドキュメントをご覧ください。Apps Script のすべての高度なサービスと同様に、高度な Drive サービスでは、公開 API と同じオブジェクト、メソッド、パラメータを使用します。詳細については、メソッドのシグネチャの決定方法をご覧ください。また、Drive API の delete という名前のメソッドは、JavaScript の予約語であるため、高度なサービス(Drive.Permissions.remove() など)では remove という名前になります。delete
問題を報告したり、その他のサポートを利用したりするには、Drive API に関するサポートガイドをご覧ください。
サンプルコード
このセクションのコードサンプルでは、API のバージョン 3 を使用します。
ファイルをアップロード
次のコードサンプルは、ユーザーのドライブにファイルを保存する方法を示しています。
フォルダを作成
次のコードサンプルは、ドライブにフォルダを作成する方法を示しています。
/**
* 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
});
}