Skip to content

Instantly share code, notes, and snippets.

@kgleong
Last active January 19, 2019 18:14
Show Gist options
  • Select an option

  • Save kgleong/c75de3c4e34167d03f97b309647e843e to your computer and use it in GitHub Desktop.

Select an option

Save kgleong/c75de3c4e34167d03f97b309647e843e to your computer and use it in GitHub Desktop.
Google Drive - Get folder ID
func getFolderID(
name: String,
service: GTLRDriveService,
user: GIDGoogleUser,
completion: @escaping (String?) -> Void) {
let query = GTLRDriveQuery_FilesList.query()
// Comma-separated list of areas the search applies to. E.g., appDataFolder, photos, drive.
query.spaces = "drive"
// Comma-separated list of access levels to search in. Some possible values are "user,allTeamDrives" or "user"
query.corpora = "user"
let withName = "name = '\(name)'" // Case insensitive!
let foldersOnly = "mimeType = 'application/vnd.google-apps.folder'"
let ownedByUser = "'\(user.profile!.email!)' in owners"
query.q = "\(withName) and \(foldersOnly) and \(ownedByUser)"
service.executeQuery(query) { (_, result, error) in
guard error == nil else {
fatalError(error!.localizedDescription)
}
let folderList = result as! GTLRDrive_FileList
// For brevity, assumes only one folder is returned.
completion(folderList.files?.first?.identifier)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment