Komut dosyası için kullanıcı arayüzü oluşturursanız komut dosyasını web uygulaması olarak yayınlayın. Örneğin, kullanıcıların destek ekibi üyeleriyle randevu planlamasına olanak tanıyan bir komut dosyası, kullanıcıların doğrudan tarayıcılarından erişebilmesi için en iyi şekilde web uygulaması olarak sunulur.
Hem bağımsız komut dosyaları hem de Google Workspace uygulamalarına bağlı komut dosyaları aşağıdaki koşulları karşıladıkları sürece web uygulamalarına dönüştürülebilir.
Web uygulamaları için şartlar
Bir komut dosyası şu koşulları karşılıyorsa web uygulaması olarak yayınlanabilir:
doGetveyadoPostişlevi içerir.- İşlev, HTML hizmeti
HtmlOutputnesnesi veya İçerik hizmetiTextOutputnesnesi döndürür.
İstek parametreleri
Bir kullanıcı uygulamayı ziyaret ettiğinde veya bir program uygulamaya HTTP GET isteği gönderdiğinde Google Apps Komut Dosyası doGet işlevini çalıştırır. Bir program uygulamaya HTTP POST isteği gönderdiğinde Apps Komut Dosyası bunun yerine doPost işlevini çalıştırır. Her iki durumda da e bağımsız değişkeni, herhangi bir istek parametresi hakkında bilgi içerebilen bir etkinlik parametresini temsil eder. Etkinlik nesnesinin yapısı aşağıdaki tabloda gösterilmektedir:
| Alanlar | |
|---|---|
e.queryString |
URL'nin sorgu dizesi kısmının değeri veya sorgu dizesi belirtilmemişse name=alice&n=1&n=2 |
e.parameter |
İstek parametrelerine karşılık gelen anahtar/değer çiftlerinden oluşan bir nesne. Birden fazla değere sahip parametreler için yalnızca ilk değer döndürülür. {"name": "alice", "n": "1"} |
e.parameters |
{"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
|
e.contextPath |
Kullanılmaz, her zaman boş dizedir. |
e.contentLength |
POST istekleri için istek gövdesinin uzunluğu veya 332 |
e.postData.length |
332 |
e.postData.type |
POST gövdesinin MIME türü text/csv |
e.postData.contents |
POST gövdesinin içerik metni Alice,21 |
e.postData.name |
Her zaman "postData" değeri postData |
username ve age gibi parametreleri aşağıdaki gibi bir URL'ye iletin:
https://script.google.com/.../exec?username=jsmith&age=21
Parametreleri aşağıdaki gibi görüntüleyin:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
Önceki örnekte doGet aşağıdaki çıkışı döndürür:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
Aşağıdaki parametre adları sistem tarafından ayrılmıştır ve URL parametrelerinde veya POST gövdelerinde kullanılmamalıdır:
csid
Bu parametrelerin kullanılması, "Üzgünüz, istediğiniz dosya mevcut değil." hata mesajıyla birlikte HTTP 405 yanıtına neden olabilir. Mümkünse komut dosyanızı farklı parametre adları kullanacak şekilde güncelleyin.
Bir komut dosyasını web uygulaması olarak dağıtma
Bir komut dosyasını web uygulaması olarak dağıtmak için aşağıdaki adımları uygulayın:
- Komut dosyası projesinin sağ üst kısmında Dağıt > Yeni dağıtım'ı tıklayın.
- "Tür seçin"in yanında Dağıtım türlerini etkinleştir > Web uygulaması'nı tıklayın.
- Web uygulamanızla ilgili bilgileri "Dağıtım yapılandırması" bölümündeki alanlara girin.
- Dağıt'ı tıklayın.
Erişim izni verdiğiniz kişilere web uygulaması URL'sini göndererek uygulamanızı kullanmalarını sağlayın.
Bir alanda dağıtılan web uygulamalarının sahipliği farklı bir alandaki ortak Drive'a veya hesaba geçerse bu uygulamalar çalışmayı durdurur. Bu sorun, yeni sahibin veya iş ortağının web uygulamasını yeni alan adında yeniden dağıtmasıyla düzeltilebilir. Alternatif olarak, web uygulaması orijinal alanına geri taşınırsa yeniden dağıtılmadan bu alan için tekrar çalışmaya başlar.
Web uygulaması dağıtımını test etme
Komut dosyanızı web uygulaması olarak test etmek için aşağıdaki adımları uygulayın:
- Senaryo projesinin sağ üst tarafında Dağıt > Test dağıtımları'nı tıklayın.
- "Tür seçin"in yanında Dağıtım türlerini etkinleştir'i > Web uygulaması'nı tıklayın.
- Web uygulaması URL'sinin altında Kopyala'yı tıklayın.
URL'yi tarayıcınıza yapıştırın ve web uygulamanızı test edin.
Bu URL,
/devile biter ve yalnızca komut dosyası için düzenleme erişimine sahip kullanıcılar tarafından erişilebilir. Uygulamanın bu örneği her zaman en son kaydedilen kodu çalıştırır ve yalnızca geliştirme sırasında test için tasarlanmıştır.
Web uygulamasında ayrıntılı OAuth özelliğini test etmek için projenizde önceden bazı yetkilendirmelerin bulunmadığından emin olun.
Mevcut yetkilendirmeleri geçersiz kılmak için ScriptApp.invalidateAuth'ı kullanın.
Halihazırda dağıtılmış ve etkin kullanıcının kimliği altında çalışan tüm web uygulamaları için executeAs manifest dosyasındaki JSON alanını USER_DEPLOYING olarak değiştirin.
Web uygulamalarını geliştirici olarak çalışacak şekilde dağıtırken ScriptApp.getOAuthToken aracılığıyla alınan OAuth jetonlarını işlerken çok dikkatli olun. Bu jetonlar, diğer uygulamalara verilerinize erişim izni verebilir. Bu nedenle, jetonları hiçbir zaman istemciye iletmeyin.
İzinler
Web uygulaması izinleri, uygulamayı yürütme şeklinize bağlı olarak değişir:
- Uygulamayı benim adıma yürüt: Bu durumda, web uygulamasına kimin eriştiği fark etmeksizin komut dosyası her zaman sizin adınıza (komut dosyasının sahibi) yürütülür.
- Uygulamayı, web uygulamasına erişen kullanıcı olarak yürüt: Bu durumda, komut dosyası web uygulamasını kullanan etkin kullanıcının kimliği altında çalışır. Bu izin yaklaşımı, kullanıcı erişimi yetkilendirdiğinde web uygulamasının komut dosyası sahibinin e-posta adresini göstermesine neden olur.
Apps Komut Dosyası, kötüye kullanımı önlemek için yeni kullanıcıların kullanıcı olarak yürütülen bir web uygulamasını yetkilendirebileceği hız konusunda sınırlar uygular. Bu sınırlar, yayınlama hesabının Google Workspace alanının bir parçası olup olmaması gibi faktörlere bağlıdır.
Ortak Drive'ı kullanarak web uygulamalarında ortak çalışma Ortak Drive'daki bir web uygulaması dağıtıldığında "Sizin gibi yürüt" seçeneği belirlenirse web uygulaması, dağıtan kullanıcının yetkisi altında yürütülür (komut dosyası sahibi olmadığından).
Web uygulamanızı Google Sites'a yerleştirme {:#embed-web-app}
Yerleştirilmiş web uygulamaları, kötü amaçlı kullanımı önlemek için erişim izinlerine tabidir. Yerleştirilmiş web uygulamanız çalışmıyorsa web uygulaması sahibi ve alan yöneticisi tarafından ayarlanan izinlerin uygulamanın kullanılmasına izin verip vermediğini kontrol edin.
Bir web uygulamasının Sites'a yerleştirilebilmesi için önce dağıtılması gerekir. Ayrıca Dağıt iletişim kutusundan Dağıtılan URL'ye de ihtiyacınız vardır.
Bir web uygulamasını Sites sayfasına yerleştirmek için aşağıdaki adımları uygulayın:
- Web uygulamasını eklemek istediğiniz Sites sayfasını açın.
- Ekle > URL'yi yerleştir'i seçin.
- Web uygulaması URL'sini yapıştırın ve EKLE'yi tıklayın.
Web uygulaması, sayfanın önizlemesinde bir çerçeve içinde görünür. Sayfayı yayınladığınızda, sitenizi görüntüleyenlerin web uygulamasının normal şekilde çalışabilmesi için önce uygulamayı yetkilendirmesi gerekebilir. Yetkisiz web uygulamaları, kullanıcıya yetkilendirme istemleri gösterir.
Web Uygulamaları ve Tarayıcı Geçmişi
Çok sayfalı bir uygulamayı veya URL parametreleri kullanılarak kontrol edilen dinamik bir kullanıcı arayüzüne sahip uygulamayı simüle etmek için uygulamanın kullanıcı arayüzünü ya da sayfasını temsil eden bir durum nesnesi tanımlayın ve kullanıcı uygulamanızda gezinirken durumu tarayıcı geçmişine gönderin. Kullanıcı tarayıcı düğmeleriyle ileri geri gezinirken web uygulamanızın doğru kullanıcı arayüzünü göstermesi için geçmiş etkinliklerini dinleyin. Yükleme sırasında URL parametrelerini sorgulayarak uygulamanızın kullanıcı arayüzünü bu parametrelere göre dinamik olarak oluşturmasını sağlayın. Böylece kullanıcı, uygulamayı belirli bir durumda başlatabilir.
Apps Komut Dosyası, tarayıcı geçmişine bağlı web uygulamaları oluşturmaya yardımcı olmak için iki eşzamansız istemci tarafı JavaScript API'si sağlar:
google.script.historytarayıcı geçmişi değişikliklerine dinamik yanıt verilmesine olanak tanıyan yöntemler sunar. Buna şunlar dahildir: tarayıcı geçmişine durumları (tanımladığınız basit Nesneler) gönderme, geçmiş yığınındaki en üst durumu değiştirme ve geçmiş değişikliklerine yanıt vermek için bir dinleyici geri çağırma işlevi ayarlama.google.script.url, mevcut sayfanın URL parametrelerini ve URL parçasını (varsa) almak için kullanılır.
Bu geçmiş API'leri yalnızca web uygulamalarında kullanılabilir. Kenar çubukları, iletişim kutuları veya eklentiler için desteklenmez. Bu işlevin Sites'a yerleştirilmiş web uygulamalarında kullanılması da önerilmez.