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 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:

İ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 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'ya benzer ancak her anahtar için bir değer dizisi içeren bir nesne

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

/exec veya /dev sonrasındaki 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, 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:

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

  1. Senaryo projesinin sağ üst tarafında Dağıt > Test dağıtımları'nı tıklayın.
  2. "Tür seçin"in yanında Dağıtım türlerini etkinleştir'i > Web uygulaması'nı 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ı 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:

  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, 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.