Komut dosyalarının Google Drive'da dosya ve klasör oluşturmasına, bulmasına ve değiştirmesine izin verir. Yerleşik Drive hizmetinin kullanımı daha kolay olsa da bazı sınırlamaları vardır. En güncel özelliklerden ve destekten yararlanmak, ortak Drive'lardaki dosyalara veya klasörlere erişmek için gelişmiş Drive hizmetini kullanın.
// Logs the name of every file in the user's Drive. const files = DriveApp.getFiles(); while (files.hasNext()) { const file = files.next(); console.log(file.getName()); }
Özellikler
| Mülk | Tür | Açıklama |
|---|---|---|
Access | Access | Bir dosyaya veya klasöre erişebilen kullanıcı sınıflarını temsil eden bir enum. Erişim izni açıkça verilen bireysel kullanıcılar bu sınıfa dahil değildir. |
Permission | Permission | Bir dosyaya veya klasöre erişebilen kullanıcılara verilen izinleri temsil eden bir enum. Bu enum, açıkça erişim verilen bireysel kullanıcıları kapsamaz. |
Yöntemler
| Yöntem | Dönüş türü | Kısa açıklama |
|---|---|---|
continue | File | Önceki bir yineleyiciden alınan devam ettirme jetonunu kullanarak bir dosya yinelemesini devam ettirir. |
continue | Folder | Önceki bir yineleyiciden alınan devam ettirme jetonunu kullanarak klasör yinelemesini devam ettirir. |
create | File | Kullanıcının Drive'ının kök dizininde, rastgele verilerden oluşan belirli bir Blob ile dosya oluşturur. |
create | File | Kullanıcının Drive'ının kök dizininde, belirtilen ad ve içeriklere sahip bir metin dosyası oluşturur. |
create | File | Kullanıcının Drive'ının kök dizininde, belirtilen ad, içerik ve MIME türüyle bir dosya oluşturur. |
create | Folder | Kullanıcının Drive'ının kök dizininde, belirtilen ada sahip bir klasör oluşturur. |
create | File | Belirtilen Drive öğesi kimliğinin kısayolunu oluşturur ve döndürür. |
create | File | Belirtilen Drive öğesi kimliği ve kaynak anahtarı için kısayol oluşturur ve döndürür. |
enforce | void | Öğe üstlerini etkileyen tüm çağrılar için enforceSingleParent davranışını etkinleştirir veya devre dışı bırakır. |
get | File | Belirtilen kimliğe sahip dosyayı alır. |
get | File | Belirtilen kimliğe ve kaynak anahtarına sahip dosyayı alır. |
get | File | Kullanıcının Drive'ındaki tüm dosyaların koleksiyonunu alır. |
get | File | Kullanıcının Drive'ında belirtilen ada sahip tüm dosyaların koleksiyonunu alır. |
get | File | Kullanıcının Drive'ında, belirtilen MIME türüne sahip tüm dosyaların koleksiyonunu alır. |
get | Folder | Belirtilen kimliğe sahip klasörü alır. |
get | Folder | Belirtilen kimliğe ve kaynak anahtarına sahip klasörü alır. |
get | Folder | Kullanıcının Drive'ındaki tüm klasörlerin koleksiyonunu alır. |
get | Folder | Kullanıcının Drive'ındaki, belirtilen ada sahip tüm klasörlerin koleksiyonunu alır. |
get | Folder | Kullanıcının Drive'ının kökündeki klasörü alır. |
get | Integer | Kullanıcının Drive'da depolamasına izin verilen bayt sayısını alır. |
get | Integer | Kullanıcının Drive'da şu anda depoladığı bayt sayısını alır. |
get | File | Kullanıcının Drive çöp kutusundaki tüm dosyaların koleksiyonunu alır. |
get | Folder | Kullanıcının Drive'ındaki çöp kutusunda bulunan tüm klasörlerin koleksiyonunu alır. |
search | File | Kullanıcının Drive'ında belirtilen arama ölçütleriyle eşleşen tüm dosyaların koleksiyonunu alır. |
search | Folder | Kullanıcının Drive'ında belirtilen arama ölçütleriyle eşleşen tüm klasörlerin koleksiyonunu alır. |
Ayrıntılı belgeler
continueFileIterator(continuationToken)
Önceki bir yineleyiciden alınan devam ettirme jetonunu kullanarak bir dosya yinelemesini devam ettirir. Bu yöntem, bir yineleyiciyi tek bir yürütmede işlemek maksimum yürütme süresini aşıyorsa faydalıdır. Devamlılık jetonları genellikle bir hafta boyunca geçerlidir.
// Continues getting a list of all 'Untitled document' files in the user's // Drive. Creates a file iterator named 'previousIterator'. const previousIterator = DriveApp.getFilesByName('Untitled document'); // Gets continuation token from the previous file iterator. const continuationToken = previousIterator.getContinuationToken(); // Creates a new iterator using the continuation token from the previous file // iterator. const newIterator = DriveApp.continueFileIterator(continuationToken); // Resumes the file iteration using a continuation token from 'firstIterator' // and logs the file name. if (newIterator.hasNext()) { const file = newIterator.next(); console.log(file.getName()); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
continuation | String | Önceki dosya yineleyicisinden alınan devamlılık jetonu. |
Return
FileIterator: Devamlılık jetonu oluşturulduğunda önceki yineleyicide kalan dosyalar koleksiyonu.
continueFolderIterator(continuationToken)
Önceki bir yineleyiciden alınan devam ettirme jetonunu kullanarak klasör yinelemesini devam ettirir. Bu yöntem, bir yineleyiciyi tek bir yürütmede işlemek maksimum yürütme süresini aşıyorsa faydalıdır. Devamlılık jetonları genellikle bir hafta boyunca geçerlidir.
// Continues getting a list of all folders in user's Drive. // Creates a folder iterator named 'previousIterator'. const previousIterator = DriveApp.getFolders(); // Gets continuation token from the previous folder iterator. const continuationToken = previousIterator.getContinuationToken(); // Creates a new iterator using the continuation token from the previous folder // iterator. const newIterator = DriveApp.continueFolderIterator(continuationToken); // Resumes the folder iteration using a continuation token from the previous // iterator and logs the folder name. if (newIterator.hasNext()) { const folder = newIterator.next(); console.log(folder.getName()); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
continuation | String | Önceki klasör yineleyicisinden alınan devam jetonu. |
Return
FolderIterator: Devamlılık jetonu oluşturulduğunda önceki yineleyicide kalan klasör koleksiyonu.
createFile(blob)
Kullanıcının Drive'ının kök dizininde, rastgele verilerden oluşan belirli bir Blob ile dosya oluşturur.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
blob | Blob | Yeni dosyanın verileri. |
Return
File: Yeni dosya.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
createFile(name, content)
Kullanıcının Drive'ının kök dizininde, belirtilen ad ve içeriklere sahip bir metin dosyası oluşturur. content 50 MB'tan büyükse istisna oluşturur.
// Create a text file with the content "Hello, world!" DriveApp.createFile('New Text File', 'Hello, world!');
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
name | String | Yeni dosyanın adı. |
content | String | Yeni dosyanın içeriği. |
Return
File: Yeni dosya.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
createFile(name, content, mimeType)
Kullanıcının Drive'ının kök dizininde, belirtilen ad, içerik ve MIME türüyle bir dosya oluşturur. content 10 MB'tan büyükse istisna oluşturur.
// Create an HTML file with the content "Hello, world!" DriveApp.createFile('New HTML File', '<b>Hello, world!</b>', MimeType.HTML);
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
name | String | Yeni dosyanın adı. |
content | String | Yeni dosyanın içeriği. |
mime | String | Yeni dosyanın MIME türü. |
Return
File: Yeni dosya.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
createFolder(name)
Kullanıcının Drive'ının kök dizininde, belirtilen ada sahip bir klasör oluşturur.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
name | String | Yeni klasörün adı. |
Return
Folder: Yeni klasör.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
createShortcut(targetId)
Belirtilen Drive öğesi kimliğinin kısayolunu oluşturur ve döndürür.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
target | String | Hedef dosyanın veya klasörün dosya kimliği. |
Return
File: Yeni kısayol.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)
Belirtilen Drive öğesi kimliği ve kaynak anahtarı için kısayol oluşturur ve döndürür. Kaynak anahtarı, bağlantı kullanılarak paylaşılan hedef dosyaya veya klasöre erişmek için iletilmesi gereken ek bir parametredir.
// Creates shortcuts for all folders in the user's drive that have a specific // name. // TODO(developer): Replace 'Test-Folder' with a valid folder name in your // drive. const folders = DriveApp.getFoldersByName('Test-Folder'); // Iterates through all folders named 'Test-Folder'. while (folders.hasNext()) { const folder = folders.next(); // Creates a shortcut to the provided Drive item ID and resource key, and // returns it. DriveApp.createShortcutForTargetIdAndResourceKey( folder.getId(), folder.getResourceKey(), ); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
target | String | Hedef dosyanın veya klasörün kimliği. |
target | String | Hedef dosyanın veya klasörün kaynak anahtarı. |
Return
File: Yeni kısayol.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
enforceSingleParent(value)
Öğe üstlerini etkileyen tüm çağrılar için enforceSingleParent davranışını etkinleştirir veya devre dışı bırakır.
Daha fazla bilgi için Google Drive'ın klasör yapısını ve paylaşım modellerini basitleştirme başlıklı blog yayınını inceleyin.
// Enables enforceSingleParent behavior for all calls affecting item parents. DriveApp.enforceSingleParent(true);
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
value | Boolean | enforceSingleParent işaretinin yeni durumu. |
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive
getFileById(id)
Belirtilen kimliğe sahip dosyayı alır. Dosya mevcut değilse veya kullanıcının dosyaya erişme izni yoksa komut dosyası oluşturma istisnası oluşturur.
// Gets a list of all files in Google Drive with the given name. // TODO(developer): Replace 'Test' with your file name. const files = DriveApp.getFilesByName('Test'); if (files.hasNext()) { // Gets the ID of each file in the list. const fileId = files.next().getId(); // Gets the file name using its ID and logs it to the console. console.log(DriveApp.getFileById(fileId).getName()); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
id | String | Dosyanın kimliği. |
Return
File: Belirtilen kimliğe sahip dosya.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFileByIdAndResourceKey(id, resourceKey)
Belirtilen kimliğe ve kaynak anahtarına sahip dosyayı alır. Kaynak anahtarları, bağlantı kullanılarak paylaşılan dosyalara erişmek için iletilmesi gereken ek bir parametredir.
Dosya yoksa veya kullanıcının dosyaya erişme izni yoksa bir komut dosyası oluşturma istisnası oluşturur.
// Gets a list of all files in Drive with the given name. // TODO(developer): Replace 'Test' with your file name. const files = DriveApp.getFilesByName('Test'); if (files.hasNext()) { // Gets the first file in the list. const file = files.next(); // Gets the ID and resource key. const key = file.getResourceKey(); const id = file.getId(); // Logs the file name to the console using its ID and resource key. console.log(DriveApp.getFileByIdAndResourceKey(id, key).getName()); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
id | String | Dosyanın kimliği. |
resource | String | Klasörün kaynak anahtarı. |
Return
File: Belirtilen kimliğe sahip dosya.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFiles()
Kullanıcının Drive'ındaki tüm dosyaların koleksiyonunu alır.
Return
FileIterator: Kullanıcının Drive'ındaki tüm dosyaların koleksiyonu.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFilesByName(name)
Kullanıcının Drive'ında belirtilen ada sahip tüm dosyaların koleksiyonunu alır.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
name | String | Bulunacak dosyaların adı. |
Return
FileIterator: Kullanıcının Drive'ında, belirtilen ada sahip tüm dosyaların bulunduğu bir koleksiyon.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFilesByType(mimeType)
Kullanıcının Drive'ında, belirtilen MIME türüne sahip tüm dosyaların koleksiyonunu alır.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
mime | String | Bulunacak dosyaların MIME türü. |
Return
FileIterator: Kullanıcının Drive'ında belirli bir MIME türüne sahip tüm dosyaların bulunduğu bir koleksiyon.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFolderById(id)
Belirtilen kimliğe sahip klasörü alır. Klasör yoksa veya kullanıcının klasöre erişim izni yoksa komut dosyası istisnası oluşturur.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
id | String | Klasörün kimliği. |
Return
Folder: Belirli bir kimliğe sahip klasör.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFolderByIdAndResourceKey(id, resourceKey)
Belirtilen kimliğe ve kaynak anahtarına sahip klasörü alır. Kaynak anahtarları, bağlantı kullanılarak paylaşılan klasörlere erişmek için iletilmesi gereken ek bir parametredir.
Klasör mevcut değilse veya kullanıcının klasöre erişim izni yoksa bir komut dosyası istisnası oluşturur.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
id | String | Klasörün kimliği. |
resource | String | Klasörün kaynak anahtarı. |
Return
Folder: Belirli bir kimliğe sahip klasör.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFolders()
Kullanıcının Drive'ındaki tüm klasörlerin koleksiyonunu alır.
Return
FolderIterator: Kullanıcının Drive'ındaki tüm klasörlerin koleksiyonu.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getFoldersByName(name)
Kullanıcının Drive'ındaki, belirtilen ada sahip tüm klasörlerin koleksiyonunu alır.
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
name | String | Bulunacak klasörlerin adı. |
Return
FolderIterator: Kullanıcının Drive'ındaki, belirtilen ada sahip tüm klasörlerin koleksiyonu.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getRootFolder()
Kullanıcının Drive'ının kökündeki klasörü alır.
// Gets the user's My Drive folder and logs its name to the console. console.log(DriveApp.getRootFolder().getName()); // Logs the Drive owner's name to the console. console.log(DriveApp.getRootFolder().getOwner().getName());
Return
Folder: Kullanıcının Drive'ının kök klasörü.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getStorageLimit()
Kullanıcının Drive'da depolamasına izin verilen bayt sayısını alır.
// Gets the number of bytes the user can store in Drive and logs it to the // console. console.log(DriveApp.getStorageLimit());
Return
Integer: Kullanıcının Drive'da depolamasına izin verilen bayt sayısı.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getStorageUsed()
Kullanıcının Drive'da şu anda depoladığı bayt sayısını alır.
// Gets the number of bytes the user is currently storing in Drive and logs it // to the console. console.log(DriveApp.getStorageUsed());
Return
Integer: Kullanıcının şu anda Drive'da depoladığı bayt sayısı.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getTrashedFiles()
Kullanıcının Drive çöp kutusundaki tüm dosyaların koleksiyonunu alır.
// Gets a list of all the files in the trash of the user's Drive. const trashFiles = DriveApp.getTrashedFiles(); // Logs the trash file names to the console. while (trashFiles.hasNext()) { const file = trashFiles.next(); console.log(file.getName()); }
Return
FileIterator: Çöp kutusundaki dosyaların koleksiyonu.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
getTrashedFolders()
Kullanıcının Drive'ındaki çöp kutusunda bulunan tüm klasörlerin koleksiyonunu alır.
// Gets a collection of all the folders in the trash of the user's Drive. const trashFolders = DriveApp.getTrashedFolders(); // Logs the trash folder names to the console. while (trashFolders.hasNext()) { const folder = trashFolders.next(); console.log(folder.getName()); }
Return
FolderIterator: Çöp kutusundaki klasörlerin koleksiyonu.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
searchFiles(params)
Kullanıcının Drive'ında belirtilen arama ölçütleriyle eşleşen tüm dosyaların koleksiyonunu alır. Arama ölçütleri Google Drive SDK belgelerinde ayrıntılı olarak açıklanmıştır. Drive hizmetinin Drive API'nin v2 sürümünü kullandığını ve bazı sorgu alanlarının v3'ten farklı olduğunu unutmayın. v2 ile v3 arasındaki alan farklılıklarını inceleyin.
params bağımsız değişkeni, dize değerleri içerebilen bir sorgu dizesidir. Bu nedenle, tırnak işaretlerini doğru şekilde kod dışına almaya dikkat edin (örneğin, "title contains 'Gulliver\\'s
Travels'" veya 'title contains "Gulliver\'s Travels"').
// Logs the name of every file in the user's Drive that modified after February 28, // 2022 whose name contains "untitled."" const files = DriveApp.searchFiles( 'modifiedDate > "2022-02-28" and title contains "untitled"'); while (files.hasNext()) { const file = files.next(); console.log(file.getName()); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
params | String | Google Drive SDK dokümanlarında ayrıntılı olarak açıklanan arama ölçütleri. |
Return
FileIterator: Kullanıcının Drive'ında arama ölçütleriyle eşleşen tüm dosyaların bulunduğu bir koleksiyon.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive
searchFolders(params)
Kullanıcının Drive'ında belirtilen arama ölçütleriyle eşleşen tüm klasörlerin koleksiyonunu alır. Arama ölçütleri Google Drive SDK belgelerinde ayrıntılı olarak açıklanmıştır. Drive hizmetinin Drive API'nin v2 sürümünü kullandığını ve bazı sorgu alanlarının v3'ten farklı olduğunu unutmayın. v2 ile v3 arasındaki alan farklılıklarını inceleyin.
params bağımsız değişkeni, dize değerleri içerebilen bir sorgu dizesidir. Bu nedenle, tırnak işaretlerini doğru şekilde kod dışına almaya dikkat edin (örneğin, "title contains 'Gulliver\\'s
Travels'" veya 'title contains "Gulliver\'s Travels"').
// Logs the name of every folder in the user's Drive that you own and is starred. const folders = DriveApp.searchFolders('starred = true and "me" in owners'); while (folders.hasNext()) { const folder = folders.next(); console.log(folder.getName()); }
Parametreler
| Ad | Tür | Açıklama |
|---|---|---|
params | String | Google Drive SDK dokümanlarında ayrıntılı olarak açıklanan arama ölçütleri. |
Return
FolderIterator: Kullanıcının Drive'ındaki arama ölçütleriyle eşleşen tüm klasörlerin bulunduğu bir koleksiyon.
Yetkilendirme
Bu yöntemi kullanan komut dosyaları, aşağıdaki kapsamlardan biri veya daha fazlasıyla yetkilendirme gerektirir:
-
https://www.googleapis.com/auth/drive.readonly -
https://www.googleapis.com/auth/drive