İçerik Hizmeti

Bir komut dosyası web uygulaması olarak yayınlandığında, özel geri çağırma işlevleri doGet() ve doPost(), komut dosyasının URL'yi tıklayın. Şununla oluşturulan bir kullanıcı arayüzü nesnesini döndürmek yerine HTML hizmeti, Ham verileri döndürmek için İçerik hizmeti kullanılabilir metin içeriğidir. Bu, "hizmet" görevi gören komut dosyaları yazmanıza, GET ve POST isteklerine yanıt verme ve çeşitli MIME türlerinden veri sunma.

Temel bilgiler

İçerik hizmetinin basit bir örneğini aşağıda görebilirsiniz:

function doGet() {
  return ContentService.createTextOutput('Hello, world!');
}

Komut dosyasını bir web uygulaması olarak dağıtın, adımları uygulayın. Zaman komut dosyasının URL'sine bir GET isteği yapılırsa Hello, world! metni geri döndü. Hizmet, düz metnin yanı sıra ATOM, CSV, iCal, JavaScript, JSON, RSS, vCard ve XML içeriği.

RSS özet akışları sunma

RSS özet akışını filtreleme gibi biraz daha karmaşık bir işlem deneyelim. İlgili içeriği oluşturmak için kullanılan XKCD çizgi romanları her zaman komik olsa da ek alternatif metni görmek için çizgi roman şeridinin üzerine gelmediğiniz sürece biraz espri yapın. Maalesef mobil tarayıcıda imleçle üzerine gelemediğiniz için bu özellik işe yaramıyor.

Feed'i düzenleyerek ekstra bitiş çizgisinin de feed'de yer aldığını varsayalım. doğrudan bakıyorsunuz. Üzerine gitmek yerine sayfayı biraz aşağı kaydırdınız. O mobil cihazda da iyi çalışır. Kod:

function doGet() {
  var feed =  UrlFetchApp.fetch('http://xkcd.com/rss.xml').getContentText();
  feed = feed.replace(
    /(<img.*?alt="(.*?)".*?>)/g,
    '$1' + new Array(10).join('<br />') + '$2');
  return ContentService.createTextOutput(feed)
    .setMimeType(ContentService.MimeType.RSS);
}

Bu işlem biraz zor gibi görünse de basit parçalara bölünüyor. Biz Orijinal dosyayı getirmek için URL Getirme hizmeti XKCD RSS özet akışı. Daha sonra, değişiklikler var. Son olarak, düzenlenen feed'i bir TextOutput nesnesi tarafından değiştirildi ve MIME'yi ayarlayın RSS'ye yazın.

Bunun bir örneğini görmek için komut dosyasını web uygulaması olarak yayınlayın ve anonim erişim (RSS okuyucunuz sayfayı anonim olarak ziyaret edeceği için) kullanıcı) tarafından sağlanır. Ardından, RSS özet akışınıza hizmetin (orijinal RSS özet akışının değil) URL'sini ekleyin. doğrudan bir web tarayıcısında doğrudan ziyaret edebilirsiniz. İşte bu kadar.

Komut dosyalarından JSON sunma

İçerik hizmetiyle başka neler yapabiliriz? JSON dosyasını diğer komut dosyaları veya diğer web siteleri ve hizmetlerde kullanılır! Burada, belirli bir zamanda bir takvim aralığının açık olup olmadığını görmek için kullanılabilen bir hizmet gerekir.

function doGet(request) {
  var events = CalendarApp.getEvents(
    new Date(Number(request.parameters.start) * 1000),
    new Date(Number(request.parameters.end) * 1000));
  var result = {
    available: events.length == 0
  };
  return ContentService.createTextOutput(JSON.stringify(result))
    .setMimeType(ContentService.MimeType.JSON);
}

Daha önce olduğu gibi, çalışmasını sağlamak için bunu anonim bir web uygulaması olarak yayınlayın. Böyle durumlarda kullanıcıları, yeni hizmetin kullanıcıları hizmet URL'si. start ve end parametreleri kontrol edilecek bir zaman aralığı sağlar. belirtilen standart Unix döneminde belirtilir.

curl -L URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000

Hizmet, sunucunuzda herhangi bir şey olup olmadığını bildiren JSON takvim de oluşturabilirsiniz.

{"available":true}

Web sayfalarında JSONP sunma

Küçük bir değişiklikle JSON hizmetiniz JSONP, yani JavaScript'ten kaldırın. Yeni komut dosyasını aşağıda bulabilirsiniz:

function doGet(request) {
  var events = CalendarApp.getEvents(
    new Date(Number(request.parameters.start) * 1000),
    new Date(Number(request.parameters.end) * 1000));
  var result = {
    available: events.length == 0
  };
  return ContentService.createTextOutput(
    request.parameters.prefix + '(' + JSON.stringify(result) + ')')
    .setMimeType(ContentService.MimeType.JAVASCRIPT);
}

Bu hizmeti bir tarayıcıdan çağırmak için src özelliği hizmetinizin URL'sidir ve prefix adlı ek bir parametre eklenir. Bu istemci taraflı JavaScript'inizde adı verilen işlevin adıdır. değeri içine yerleştirmeniz gerekir.

<script src="URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000&prefix=alert"></script>

Bu örnek, tarayıcıda hizmet çıkışını içeren bir mesaj kutusu gösterir. çünkü ön eki olarak tarayıcının yerleşik alert() işlevini belirtiyoruz. İlgili içeriği oluşturmak için kullanılan Döndürülen JavaScript kodu aşağıdaki gibi görünür:

alert({"available":true})

Yönlendirmeler

Güvenlik nedeniyle, İçerik hizmeti tarafından döndürülen içerik script.google.com, bunun yerine şu adresteki tek seferlik URL'ye yönlendirildi: script.googleusercontent.com. Yani İçerik hizmetini kullanıyorsanız başka bir uygulamaya veri döndürmek istiyorsanız, HTTP istemcisinin yapılandırıldı. Örneğin, cURL komut satırı yardımcı programında, -L işaretini ekleyin. Daha fazla bilgi için HTTP istemcinizin dokümanlarına bakın bu davranışı nasıl etkinleştireceğinizle ilgili bilgi edinin.