Bir komut dosyası için kullanıcı arayüzü oluşturursanız komut dosyasını web uygulaması olarak yayınlayabilirsiniz. Örneğin, kullanıcıların bir destek ekibinin üyeleriyle randevu almasına olanak tanıyan bir komut dosyasını, kullanıcıların doğrudan tarayıcılarından erişebilmesi için web uygulaması olarak sunmak en iyi seçenektir.
Hem bağımsız komut dosyaları hem de Google Workspace uygulamalara bağlı komut dosyaları, aşağıdaki koşulları karşılamaları koşuluyla web uygulamalarına dönüştürülebilir.
Web uygulamalarıyla ilgili şartlar
Aşağıdaki koşulları karşılayan komut dosyaları web uygulaması olarak yayınlanabilir:
doGet(e)
veyadoPost(e)
işlevi içerir.- İşlev, bir HTML hizmeti
HtmlOutput
nesnesi veya İçerik hizmetiTextOutput
nesnesi döndürür.
İstek parametreleri
Kullanıcı bir uygulamayı ziyaret ettiğinde veya bir program uygulamaya HTTP GET
isteği gönderdiğinde Apps Script, doGet(e)
işlevini çalıştırır. Bir program uygulamaya HTTP POST
isteği gönderdiğinde Apps Script bunun yerine doPost(e)
'ü çalıştırır. Her iki durumda da e
bağımsız değişkeni, tüm istek parametreleri hakkında bilgi içerebilen bir etkinlik parametresini temsil eder. Etkinlik nesnesinin yapısı aşağıdaki tabloda gösterilmiştir:
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 çiftleri nesnesi. Birden fazla değeri olan 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 GET istekleri için 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 |
Örneğin, username
ve age
gibi parametreleri aşağıda gösterildiği gibi bir URL'ye iletebilirsiniz:
https://script.google.com/.../exec?username=jsmith&age=21
Ardından parametreleri aşağıdaki gibi gösterebilirsiniz:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
Yukarıdaki örnekte doGet(e)
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
}
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 Yayınla > Yeni dağıtım'ı tıklayın.
- "Türü seçin"in yanındaki Dağıtım türlerini etkinleştir'i > Web uygulaması tıklayın.
- "Yayın yapılandırması" altındaki alanlara web uygulamanızla ilgili bilgileri girin.
- Dağıt'ı tıklayın.
Erişim izni verdiğiniz kullanıcılarla web uygulaması URL'sini paylaşabilirsiniz.
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:
- Komut dosyası projesinin sağ üst kısmında Dağıtım > Dağıtım test et'i tıklayın.
- "Türü seçin"in yanındaki Dağıtım türlerini etkinleştir'i > Web uygulaması 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,
/dev
ile biter ve yalnızca komut dosyasına düzenleme erişimi olan 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.
İzinler
Bir web uygulamasının izinleri, uygulamayı nasıl çalıştırmayı seçtiğinize bağlı olarak değişir:
- Uygulamayı benim adıma çalıştır: Bu durumda komut dosyası, web uygulamasına kim erişirse erişsin her zaman komut dosyası sahibi olarak siz çalıştırırsınız.
- Uygulamayı, web uygulamasına erişen kullanıcı olarak yürütme: 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şim yetkisi verdiğinde web uygulamasının komut dosyası sahibinin e-posta adresini göstermesine neden olur.
Web uygulamanızı Google Sites'e yerleştirme
Bir web uygulamasının Google Sites'e yerleştirilebilmesi için önce yayılması gerekir. Deploy
iletişim kutusundaki 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, sitenizin görüntüleyenlerinin web uygulamasının normal şekilde çalışması için uygulamayı yetkilendirmesi gerekebilir. Yetkisiz web uygulamaları kullanıcıya yetkilendirme istemleri gösterir.
Web Uygulamaları ve Tarayıcı Geçmişi
Bir Apps Script web uygulamasının çok sayfalı bir uygulamayı veya URL parametreleri aracılığıyla kontrol edilen dinamik bir kullanıcı arayüzüne sahip bir uygulamayı simüle etmesi istenebilir. Bunu iyi bir şekilde yapmak için uygulamanın kullanıcı arayüzünü veya sayfasını temsil edecek bir durum nesnesi tanımlayabilir ve kullanıcı uygulamanızda gezinirken durumu tarayıcı geçmişine gönderebilirsiniz. Ayrıca, 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 de dinleyebilirsiniz. URL parametrelerini yükleme sırasında sorgulayarak uygulamanızın kullanıcı arayüzünü bu parametrelere göre dinamik olarak oluşturmasını sağlayabilir, böylece kullanıcının uygulamayı belirli bir durumda başlatmasına olanak tanıyabilirsiniz.
Apps Komut Dosyası, tarayıcı geçmişine bağlı web uygulamaları oluşturmanıza yardımcı olmak için iki eşzamansız istemci tarafı JavaScript API'si sağlar:
google.script.history
, tarayıcı geçmişi değişikliklerine dinamik yanıt vermenizi sağlayan yöntemler sunar. Bu işlemler arasında: Durumları (tanımlayabileceğiniz basit nesneler) tarayıcı geçmişine 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 yer alır.google.script.url
, mevcut sayfanın URL parametrelerini ve varsa URL parçasını alma olanağı sağlar.
Bu geçmiş API'leri yalnızca web uygulamaları tarafından kullanılabilir. Kenar çubukları, iletişim kutuları veya eklentilerde desteklenmez. Bu işlev, Google Sites'e yerleştirilmiş web uygulamalarında da kullanılmak üzere önerilmez.