które zwracają surową treść tekstową różnych typów MIME.
Gdy skrypt jest publikowany jako aplikacja internetowa, funkcje wywołania zwrotnego doGet i doPost są wykonywane za każdym razem, gdy do adresu URL skryptu jest wysyłane żądanie. Zamiast zwracać obiekt interfejsu utworzony za pomocą usługi HTML, usługa Content może zwracać nieprzetworzone treści tekstowe. Pisz skrypty, które działają jak usługi, odpowiadając na żądania GET i POST
oraz udostępniając dane różnych typów MIME.
Podstawy
Poniższy przykład pokazuje, jak korzystać z usługi Content:
function doGet() {
return ContentService.createTextOutput('Hello, world!');
}
Wdróż skrypt jako aplikację internetową.
Wykonaj te same czynności co w przypadku udostępniania interfejsu użytkownika. Gdy do adresu URL skryptu zostanie wysłane żądanie GET, zwrócony zostanie tekst Hello, world!. Oprócz zwykłego tekstu usługa obsługuje zwracanie treści w formatach ATOM, CSV, iCal, JavaScript, JSON, RSS, vCard i XML.
Udostępnianie kanałów RSS
Filtruj kanał RSS, aby modyfikować jego zawartość. Możesz na przykład edytować plik danych XKCD, aby uwzględnić w nim tekst alternatywny, co poprawi wyświetlanie na urządzeniach mobilnych.
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);
}
Kod składa się z tych komponentów: Użyj usługi pobierania danych z adresów URL, aby pobrać oryginalny kanał RSS XKCD. Użyj standardowego wyrażenia regularnego JavaScript, aby dokonać zamiany. Owiń edytowany plik danych w obiekcie TextOutput i ustaw typ MIME na RSS.
Aby zobaczyć, jak to działa, opublikuj skrypt jako aplikację internetową i zezwalaj na dostęp anonimowy. Dodaj adres URL usługi do czytnika RSS lub otwórz go bezpośrednio w przeglądarce.
Wyświetlanie JSON z poziomu skryptów
Użyj usługi Content, aby udostępniać JSON innym skryptom, witrynom i usługom. Poniższy skrypt implementuje usługę, która sprawdza, czy w kalendarzu jest dostępny termin o określonej godzinie.
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);
}
Opublikuj go jako anonimową aplikację internetową. Użytkownicy mogą dodawać parametry URL na końcu adresu URL usługi. Parametry start i end określają zakres czasowy w standardowym czasie uniksowym.
curl -L URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000
Usługa zwraca JSON, który informuje, czy kalendarz jest otwarty w tym zakresie.
{"available":true}
Wyświetlanie JSONP na stronach internetowych
Po niewielkiej zmianie usługa JSON może stać się usługą JSONP, którą można wywoływać z JavaScriptu w przeglądarce.
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);
}
Aby wywołać tę usługę z przeglądarki, utwórz tag skryptu z atrybutem src ustawionym na adres URL usługi i dodatkowym parametrem prefix. Jest to nazwa funkcji w kodzie JavaScript po stronie klienta, która jest wywoływana z wartością zwróconą przez usługę.
<script src="URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000&prefix=alert"></script>
Ten przykład pokazuje pole wiadomości w przeglądarce z danymi wyjściowymi usługi, w którym jako prefiks użyto wbudowanej funkcji przeglądarki alert. Zwrócony kod JavaScript wygląda tak:
alert({"available":true})
Zachowaj ostrożność podczas korzystania z JSONP. Każdy może umieścić tag skryptu na swojej stronie internetowej, więc możesz zostać oszukany i wykonać skrypt podczas odwiedzania złośliwej witryny, która może następnie przechwycić zwrócone dane. Upewnij się, że skrypty JSONP są tylko do odczytu i zwracają tylko informacje niepoufne.
Przekierowania
Ze względów bezpieczeństwa treści zwracane przez usługę Content są przekierowywane na jednorazowy adres URL w domenie script.googleusercontent.com. Jeśli używasz usługi Content do zwracania danych do innej aplikacji, sprawdź, czy klient HTTP jest skonfigurowany tak, aby śledzić przekierowania. W przypadku narzędzia wiersza poleceń curl dodaj flagę -L. Więcej informacji znajdziesz w dokumentacji klienta HTTP.