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.