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 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.
Aşağıdaki koşulları karşıladıkları sürece hem bağımsız komut dosyaları hem de Google Workspace uygulamalarına bağlı komut dosyaları 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:
doGet(e)
veyadoPost(e)
işlevi içerir.- İşlev, HTML hizmeti
HtmlOutput
nesnesi veya İçerik hizmetiTextOutput
nesnesi döndürür.
İstek parametreleri
Bir kullanıcı uygulamayı ziyaret ettiğinde veya bir program uygulamaya HTTP GET
isteği gönderdiğinde Apps Komut Dosyası doGet(e)
işlevini çalıştırır. Bir program uygulamaya HTTP
POST
isteği gönderdiğinde Apps Komut Dosyası bunun yerine doPost(e)
işlevini çalıştırır. Her iki durumda da e
bağımsız değişken, 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 ç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, aşağıdaki şekilde gösterildiği gibi bir URL'ye username
ve age
gibi parametreler iletebilirsiniz:
https://script.google.com/.../exec?username=jsmith&age=21
Ardından, parametreleri aşağıdaki gibi görüntüleyebilirsiniz:
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
}
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 takdirde, web uygulaması URL'sini uygulamanızı kullanmasını istediğiniz kişilerle 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:
- 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,
/dev
ile 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 amaçlı kullanılır.
İ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ğine bakılmaksızın komut dosyası her zaman komut dosyasının sahibi olan sizin adınıza yürütülür.
- Uygulamayı, web uygulamasına erişen kullanıcı olarak yürütün: 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.
Web uygulamanızı Google Sites'a yerleştirme
Bir web uygulamasının Google Sites'a yerleştirilebilmesi için önce dağıtılması gerekir. Ayrıca 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 şu 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, site izleyicilerinizin 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
Apps Komut Dosyası web uygulamasının çok sayfalı bir uygulamayı veya URL parametreleri aracılığıyla kontrol edilen dinamik bir kullanıcı arayüzüne sahip uygulamayı simüle etmesi istenebilir. Bunu iyi bir şekilde yapmak için uygulamanın kullanıcı arayüzünü veya sayfasını temsil eden 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 ve geri gezinirken web uygulamanızın doğru kullanıcı arayüzünü göstermesi için geçmiş etkinliklerini de dinleyebilirsiniz. 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ğlayabilir ve 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şturmaya 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 verilmesine olanak tanıyan yöntemler sunar. Buna şunlar dahildir: tarayıcı geçmişine durumları (tanımlayabileceğiniz 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 eklentilerde desteklenmez. Bu işlevin Google Sites'a yerleştirilmiş web uygulamalarında kullanılması da önerilmez.