MAKALE

Apps Script Kullanarak Google Drive Dosyaları Nasıl Kopyalanır?

Günümüzün hızlı dijital dünyasında, tekrarlayan görevleri otomatikleştirmek üretkenliği ve verimliliği artırmanın anahtarıdır. Birçoğumuzun karşılaştığı yaygın görevlerden biri, Google E-Tablolar gibi bir Google Drive dosyasının kopyalarını oluşturma ve bunları belirli kullanıcılar veya ekiplerle paylaşma ihtiyacıdır. Proje şablonlarını yönetiyor, raporlar oluşturuyor veya kaynakları dağıtıyor olun, manuel süreç zaman alıcı olabilir. Neyse ki, Google tarafından geliştirilen güçlü bir betik pl...

Mobil · 05.08.2024

Apps Script Kullanarak Google Drive Dosyaları Nasıl Kopyalanır?

Günümüzün hızlı dijital dünyasında, tekrarlayan görevleri otomatikleştirmek üretkenliği ve verimliliği artırmanın anahtarıdır. Birçoğumuzun karşılaştığı yaygın görevlerden biri, Google E-Tablolar gibi bir Google Drive dosyasının kopyalarını oluşturma ve bunları belirli kullanıcılar veya ekiplerle paylaşma ihtiyacıdır. Proje şablonlarını yönetiyor, raporlar oluşturuyor veya kaynakları dağıtıyor olun, manuel süreç zaman alıcı olabilir. Neyse ki, Google tarafından geliştirilen güçlü bir betik pl...

Adım 1: Uygulama Komut Dosyası Projenizi Oluşturun

Apps Script'e gidin ve "Yeni Proje"ye tıklayarak yeni bir proje oluşturun. Bu, Google işlemlerini otomatikleştirmenin büyüsünün başladığı çalışma alanınızdır. Sayfanın en üstünde projenizin adını değiştirerek amacının temel bir açıklamasını verin. Çalışma alanınızı hazırlamak için son adım olarak, temiz bir sayfa elde etmek için varsayılan myFunction() bildirimini silin.

Adım 2: Drive API'yi Etkinleştirme

Kopyaladığınız dosyada belirli izinler ayarlamayı planlıyorsanız, projeniz içinde "Drive API" hizmetini etkinleştirmek en iyisidir. Etkinleştirmek, betiğinizin Google Drive API ile iletişim kurmasını sağlar ve Google Drive'da dosya yönetimini otomatikleştirmek için ek işlevsellik ve yöntemler ekler. Hizmeti etkinleştirmek için şu basit adımları izleyin:

  • Komut dosyası düzenleyicisinin içinde, sol kenar çubuğundaki “Hizmetler”in yanındaki + simgesine tıklayın.
  • Biraz aşağı kaydırın ve “Drive API”ye tıklayın.
  • Bu hizmeti projenize eklemek için "Ekle"ye tıklayın
  • "Sürücü"nün artık "Hizmetler" bölümünün altında listelendiğini fark edeceksiniz

Bir hizmet seçimi ekleyin

Adım 3: Şablon Dosyanızı Hazırlama

Şablonunuz olarak bir Google E-Tablosu (veya herhangi bir Google Drive dosyası) seçin. Bu eğitim için bir Google E-Tablosu kullanacağım. Bu dosya, oluşturulacak tüm kopyalar için başlangıç ​​noktası olarak istediğiniz herhangi bir yapı veya veriyle ayarlanmalıdır. Dosyanın URL'sindeki kimliğini, onu Google Drive'da benzersiz bir şekilde tanımlayan kimlik bilgisine dikkat edin. Kimliği nasıl alacağınızdan emin değilseniz dosyayı açın. Kimlik, URL'deki /d/ ve /edit arasındaki değerdir. Bir sonraki adım için bu değeri kopyalayın.

Adım 4: Kopyalama İşlevinin Oluşturulması

Artık şablon dosyamız hazır olduğuna göre, bir kopya oluşturmak için ana işlevi oluşturmanın zamanı geldi. Kod parçacıkları sağlayacağım, ancak herhangi bir sorunla karşılaşırsanız veya dosyaları düzenlemek için başka yöntemler ve seçenekler keşfetmek isterseniz lütfen Apps Script belgelerine başvurun.

4.1: Fonksiyonunuzu Bildirin

Bu kendi kendini açıklıyor, ancak önce fonksiyonu bildirmemiz gerekiyor. Ona kullanışlı bir ad verin veya bu örnekteki adı kullanın. Ayrıca projectName için bir parametre de geçiriyorum . Kopyalar oluşturup bunları aynı klasöre yerleştirdiğimiz için yeni dosyaları farklı şekilde adlandırmanın bir yolunu istiyoruz. Benim kullanım durumum için her dosya kopyası için bir proje adı kullanıyorum..

function copyAndConfigureFile(projectName) {
// Function body code goes here!
}

4.2: Şablon Dosyasını ve Hedefi Tanımlayın

Fonksiyonunuzun başında şablon dosyanızın ve hedef klasörün kimliklerini tanımlayın. Klasörün kimliği, dosya kimliğine benzer şekilde bulunabilir. Klasörü Google Drive'da açın ve /folders/ sonrasındaki değeri kopyalayın . Kimlikleri tanımladıktan sonra, dosyayı ve klasörü kimlikleri aracılığıyla referans vererek tanımlayın.

var templateFileId = '1234567890abcdefghijklmnop';
var parentFolderId = 'abcdefghijklmnop1234567890';
var templateFile = DriveApp.getFileById(templateFileId);
var parentFolder = DriveApp.getFolderById(parentFolderId);

4.3: Yeni Kopyayı Oluştur

Dosyanızı bir ad değişkeni ayarlayarak adlandırın. Benzersiz bir ad için bir parametre kullanmayı planlıyorsanız, bu adımda onu kullandığınızdan emin olun. Şablonu ve üst klasör referanslarını kullanarak şablonun bir kopyasını oluşturun, istediğiniz klasöre yerleştirin ve dinamik olarak yeniden adlandırın.

var newName = projectName + 'Satinalma';
var copiedFile = templateFile.makeCopy(newName, parentFolder);

4.4: Belirli İzinleri Uygula

Dosyanızda belirli e-posta adresleri için izinler ayarlamanız gerekiyorsa, aşağıdaki genel kod yapısını ekleyin ve e-posta dizisini güncelleyin. Bu örnekte, rollerini " writer" olarak ayarlayarak belirtilen e-posta adresleri için düzenleme izinleri ayarlıyorum. Ayrıca, sendNotificationEmail'i "false" olarak ayarlıyorum , bu da kullanıcılara e-posta gönderilmesini engelleyerek onlara yeni bir dosyanın paylaşıldığını bildiriyor. Bu e-postaların gönderilmesini tercih ediyorsanız, değeri "true" olarak ayarlayın.

var emails = ['john@gmail.com', 'emma@gmail.com']; // Adjust as needed
emails.forEach(function(email) {
Drive.Permissions.create({
'type': 'user',
'role': 'writer',
'emailAddress': email
}, copiedFile.getId(), {
'supportsAllDrives': 'true',
'sendNotificationEmail': 'false'
});
});

4.5: Paylaşım İzinlerini Uygula

Dosyanızın daha geniş erişime ihtiyacı varsa, örneğin alan çapında düzenleme hakları varsa, bu tek bir kod satırıyla ayarlanabilir. Bu örnekte, kuruluşumun Google Workspace'indeki tüm alan kullanıcıları için düzenleme erişimi ayarlıyorum.

copiedFile.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.EDIT);

4.6: URL'yi döndürme

Fonksiyonunuzun yeni kopyalanan dosyanın URL'si gibi bir değer döndürmesini istiyorsanız, aşağıdaki koda başvurun. Kopyalanan Google Sheet'in URL'sinin sonunda, değeri döndürmeden önce kaldırdığım gereksiz bir metin vardı.

var fileUrl = copiedFile.getUrl().replace("/edit?usp=drivesdk", "");
return fileUrl;

Adım 5: Fonksiyonu Web Uygulaması Olarak Açığa Çıkarma

Ana kopyalama fonksiyonunuzun altına, ana fonksiyonu bir web uygulaması olarak göstermek için bir doPost fonksiyonu eklememiz gerekiyor . Apps Script, fonksiyonun HTTP POST istekleri aracılığıyla çağrılabilir olması için bu şekilde adlandırılmasını gerektirir. projectName parametresini ( veya kullanmaya karar verdiğiniz parametreyi) geçirmeyi unutmayın.

function doPost(e) {
var projectName = e.parameter.projectName;
var resultUrl = copyAndConfigureFile(projectName);
return ContentService.createTextOutput(JSON.stringify({'url': resultUrl}))
.setMimeType(ContentService.MimeType.JSON);
}

Adım 6: Dahili Test

Komut dosyanızı dağıtmadan önce, beklendiği gibi çalıştığından emin olmak için Apps Script içinde test edin. Kod düzenleyicinin en üstünde, ana kopyalama işlevinizin işlev açılır menüsünde seçili olduğundan emin olun ve ardından "Çalıştır"a tıklayın. Her şey doğru şekilde ayarlanmışsa, işlev tamamlanmalı ve şablon dosyanız kopyalanacaktır. Test ederken fazladan dosya kopyalarını silmeyi unutmayın. Karşılaşabileceğiniz sorunları gidermek için hata ayıklayıcıyı veya günlük ifadelerini kullanın.

Adım 7: Web Uygulaması Olarak Dağıtım

  1. Sayfanın üst kısmında Dağıt > Yeni dağıtım'a tıklayın
  2. "Tür seç"in yanında, dişli simgesine tıklayın ve Web uygulamasının seçili olduğundan emin olun
  3. Bir Açıklama Doldurun
  4. Execute'u "Ben" olarak ayarlayın
  5. "Herkes"e kimin erişebileceğini ayarlayın (bu, web uygulamasının herhangi bir uygulamadan veya API istemcisinden çağrılabilmesi içindir; kullanım durumunuz daha sıkı güvenlik gerektiriyorsa, buna göre ayarlayın)
  6. Dağıt'ı tıklayın
  7. Sağlanan web uygulaması URL'sini kopyalayın; bu, harici aramalar için uç noktanızdır

Adım 8: API İstemcisi ile Test Etme

Web uygulamanızı test etmek için Postman veya Thunder Client gibi bir API istemcisi kullanın.

  • Yöntem: POST
  • URL: Dağıtım adımındaki web uygulaması URL'si
  • Başlıklar: Anahtar: İçerik Türü, Değer: application/x-www-form-urlencoded
  • Gövde: Form-encode'u seçin ve fonksiyon parametreniz için bir test değeri olan bir anahtar ekleyin (benim örneğimde, şöyle görünecektir projectName : Demo Project)

API çağrısını test edin ve dosyanın beklediğiniz gibi kopyalandığından emin olun.

Adım 9: Web Uygulaması Entegrasyonu

Artık çalışan bir web uygulamamız olduğuna göre, bir uygulamaya, betiğe veya başka bir programa daha fazla entegre edilebilir. Benim kullanım durumum için, Axios kullanarak bir Vue uygulamasına entegre ettim . İşte bu kodun nasıl göründüğüne dair temel bir örnek:

axios.post('YOUR_WEB_APP_URL', `projectName=${encodeURIComponent('Demo Project')}`, {
headers: {
		'Content-Type': 'application/x-www-form-urlencoded'
	}
})
	.then(response => console.log('Copied file URL: ', response.data.url))
	.catch(error => console.error('Error: ', error));

Bu eğitim boyunca, Google Apps Script'in Google E-Tablosu gibi bir Google Drive dosyasını kopyalama ve nasıl paylaşılacağını yapılandırma sürecini otomatikleştirme konusundaki güçlü yeteneklerini inceledik. Süreci yönetilebilir adımlara bölerek, belge yönetimi görevlerinizi ne kadar kolay bir şekilde düzenleyebileceğinizi gösterdik. Bu otomasyon yalnızca değerli zamandan tasarruf sağlamakla kalmaz, aynı zamanda insan hatası riskini de en aza indirerek ekibiniz veya kuruluşunuz içinde kaynakların nasıl dağıtıldığı konusunda tutarlılık ve verimlilik sağlar. Gördüğünüz gibi, Google Apps Script, Google'ın birçok uygulaması ve hizmeti genelinde iş akışlarını otomatikleştirmek için sonsuz bir olasılıklar dünyası açar. İş akışlarınızı otomatikleştirmenin ve günlük görevlerinizi daha verimli hale getirmenin yeni yollarını keşfetmek için Apps Script'i daha fazla deneyerek kapsamlı belgelerini ve topluluk kaynaklarını keşfetmenizi öneririm. İyi komut dosyaları!

Orijinal Bağlantıyı Aç →