Web Uygulamaları

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:

İ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 null

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

e.parameter'ye benzer ancak her anahtar için bir değer dizisi içeren bir nesne

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

/exec veya /dev'den sonraki URL yolu. Örneğin, URL yolu /exec/hello ile bitiyorsa yol bilgisi hello olur.

e.contextPath Kullanılmaz, her zaman boş dizedir.
e.contentLength

POST istekleri için istek gövdesinin uzunluğu veya GET istekleri için -1

332
e.postData.length

e.contentLength ile aynı

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:

  1. Komut dosyası projesinin sağ üst kısmında Yayınla > Yeni dağıtım'ı tıklayın.
  2. "Türü seçin"in yanındaki Dağıtım türlerini etkinleştir'i > Web uygulaması tıklayın.
  3. "Yayın yapılandırması" altındaki alanlara web uygulamanızla ilgili bilgileri girin.
  4. 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:

  1. Komut dosyası projesinin sağ üst kısmında Dağıtım > Dağıtım test et'i tıklayın.
  2. "Türü seçin"in yanındaki Dağıtım türlerini etkinleştir'i > Web uygulaması tıklayın.
  3. Web uygulaması URL'sinin altında Kopyala'yı tıklayın.
  4. 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:

  1. Web uygulamasını eklemek istediğiniz Sites sayfasını açın.
  2. Ekle > URL'yi yerleştir'i seçin.
  3. 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.