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 planlamalarına olanak tanıyan bir komut dosyasının, kullanıcıların doğrudan tarayıcılarından erişebilmesi için web uygulaması olarak sunulması önerilir.

Hem bağımsız komut dosyaları hem de uygulamalara Google Workspace bağlı komut dosyaları, aşağıdaki şartları karşıladıkları sürece web uygulamalarına dönüştürülebilir.

Web uygulamaları için gereksinimler

Aşağıdaki gereksinimleri karşılayan komut dosyaları web uygulaması olarak yayınlanabilir:

İstek parametreleri

Bir kullanıcı bir uygulamayı ziyaret ettiğinde veya bir program uygulamaya bir HTTP GET isteği gönderdiğinde, Apps Komut Dosyası doGet(e) işlevini çalıştırır. Bir program uygulamaya bir HTTP POST isteği gönderdiğinde, Apps Komut Dosyası 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österilmektedir:

Alanlar
e.queryString

URL'nin sorgu dizesi bölümünün değeri veya sorgu dizesi belirtilmediyse null

name=alice&n=1&n=2
e.parameter

İstek parametrelerine karşılık gelen anahtar/değer çiftlerinden oluşan bir nesne. Birden çok değeri olan parametreler için yalnızca ilk değer döndürülür.

{"name": "alice", "n": "1"}
e.parameters

e.parameter benzeri, ancak her anahtar için değer dizisi olan 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ılmıyor, her zaman boş dize.
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 geçirebilirsiniz:

https://script.google.com/.../exec?username=jsmith&age=21

Ardından, parametreleri şu şekilde 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 tarafı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. "Dağıtım yapılandırması" bölümündeki alanlara web uygulamanızla ilgili bilgileri girin.
  4. Dağıt'ı tıklayın.

Erişim izni verdiğiniz takdirde web uygulaması URL'sini, uygulamanızı kullanmak istediğiniz kişilerle paylaşabilirsiniz.

Web uygulaması dağıtımını test etme

Komut dosyanızı bir web uygulaması olarak test etmek için aşağıdaki adımları uygulayın:

  1. Komut dosyası projesinin sağ üst tarafında Dağıt > Dağıtımları test et'i 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 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 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ıdır.

İzinler

Bir web uygulamasının izinleri, uygulamayı nasıl yürütmeyi seçtiğinize bağlı olarak değişir:

  • Uygulamayı ben olarak çalıştır: Bu durumda komut dosyası, web uygulamasına kimin eriştiğinden bağımsız olarak her zaman komut dosyasının sahibi olarak yürütülür.
  • Uygulamayı web uygulamasına erişen kullanıcı olarak çalıştırı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 öncelikle uygulamanın dağıtılması gerekir. Deploy iletişim kutusunda Dağıtılan URL'yi de almanız gerekir.

Bir Siteler sayfasına web uygulaması yerleştirmek için şu adımları uygulayın:

  1. Web uygulamasını eklemek istediğiniz Sites sayfasını açın.
  2. Ekle > URL 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 normal şekilde çalışması için sitenizi görüntüleyenlerinizin web uygulamasını yetkilendirmesi gerekebilir. Yetkisiz web uygulamaları, kullanıcıya yetkilendirme istemleri sunar.

Web Uygulamaları ve Tarayıcı Geçmişi

Bir Apps Komut Dosyası web uygulamasının çok sayfalı bir uygulamayı simüle etmesi veya URL parametreleri aracılığıyla kontrol edilen dinamik kullanıcı arayüzü olması istenebilir. Bunu başarıyla 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 aktarabilirsiniz. Kullanıcı, tarayıcı düğmeleriyle ileri ve geri gittiğinde web uygulamanızın doğru kullanıcı arayüzünü göstermesi için geçmiş etkinliklerini de dinleyebilirsiniz. Yükleme zamanında URL parametrelerini sorgulayarak uygulamanızın, kullanıcı arayüzünü bu parametrelere göre dinamik olarak oluşturmasını sağlayabilirsiniz. Böylece, kullanıcının uygulamayı belirli bir durumda başlatması sağlanır.

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 verilmesini sağlayacak yöntemler sunar. Bu işlemler arasında şunlar bulunur: tarayıcı geçmişine durum (tanımlayabileceğiniz basit Nesneler) aktarma, geçmiş yığınındaki üst durumu değiştirme ve geçmiş değişikliklerine yanıt vermek için bir işleyici geri çağırma işlevi ayarlama.

  • google.script.url, geçerli sayfanın URL parametrelerini ve varsa URL parçasını alma yöntemini sağlar.

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, Google Sites sitelerine yerleştirilmiş web uygulamalarında kullanılması da önerilmez.