Przewodnik po protokołów

Klasyczny interfejs API Witryn Google umożliwia aplikacjom uzyskiwanie dostępu do treści w Witrynach Google oraz publikowanie i modyfikowanie jej zawartości. Aplikacja może też poprosić o listę ostatniej aktywności, pobrać historię wersji i przesłać lub pobrać załączniki i pliki.

Odbiorcy

Zakładamy w nim, że rozumiesz ogólne koncepcje protokołu interfejsów API danych Google.

Ten dokument jest przeznaczony dla programistów, którzy chcą pisać aplikacje klienckie obsługujące Witryny Google. Zawiera on serię przykładów podstawowych interakcji z interfejsem danych API przy użyciu nieprzetworzonego kodu XML/HTTP wraz z wyjaśnieniami. Po przeczytaniu tego dokumentu możesz dowiedzieć się więcej o interakcjach z interfejsem API za pomocą naszych bibliotek klienta. W tym celu przeczytaj przykłady w różnych językach w innych przewodnikach w pasku nawigacyjnym po lewej stronie.

Materiały w tym przewodniku znajdziesz w przewodniku na temat referencji.

Autoryzowanie zapytań

Gdy aplikacja żąda niepublicznych danych użytkownika, musi zawierać token autoryzacji. Token stanowi też dla Google identyfikator aplikacji.

Informacje o protokołach autoryzacji

Twoja aplikacja musi autoryzować żądania za pomocą protokołu OAuth 2.0. Inne protokoły nie są obsługiwane. Jeśli aplikacja używa funkcji Zaloguj się przez Google, niektórymi aspektami autoryzacji nie musisz się zajmować.

Autoryzowanie żądań za pomocą protokołu OAuth 2.0

Żądania wysyłane do interfejsu Google Sites Data API w celu uzyskania dostępu do niepublicznych danych użytkownika muszą być autoryzowane przez uwierzytelnionego użytkownika.

Szczegóły procesu autoryzacji z użyciem protokołu OAuth 2.0 różnią się nieznacznie w zależności od rodzaju projektowanej aplikacji. Do większości typów aplikacji ma zastosowanie ten ogólny proces:

  1. Gdy tworzysz aplikację, rejestrujesz ją, korzystając z konsoli interfejsów API Google. Następnie Google przekazuje informacje, które są potrzebne później, takie jak identyfikator klienta i tajny klucz klienta.
  2. Włącz interfejs Google Sites Data API w konsoli interfejsów API Google. (jeśli interfejsu API nie ma na liście w konsoli, pomijasz ten krok).
  3. Gdy Twoja aplikacja potrzebuje dostępu do danych użytkownika, prosi Google o konkretny zakres dostępu.
  4. Google wyświetla użytkownikowi ekran zgody z prośbą o autoryzowanie dostępu aplikacji do niektórych danych.
  5. Jeśli użytkownik wyrazi zgodę, Google przekazuje Twojej aplikacji ważny przez krótki czas token dostępu.
  6. Aplikacja żąda danych użytkownika i dołącza do żądania token dostępu.
  7. Jeśli Google uzna, że żądanie i token są prawidłowe, przesyła dane, o które prosisz.

Niektóre procesy obejmują dodatkowe kroki, takie jak wykorzystanie tokenów odświeżania do uzyskania nowych tokenów dostępu. Szczegółowe informacje o procesach obowiązujących w przypadku różnych typów aplikacji znajdziesz w dokumencie Google na temat protokołu OAuth 2.0.

Oto informacje o zakresie protokołu OAuth 2.0 dla interfejsu Google Sites Data API:

https://sites.google.com/feeds/

Aby poprosić o dostęp przy użyciu protokołu OAuth 2.0, aplikacja potrzebuje danych z zakresu oraz informacji przekazywanych przez Google po zarejestrowaniu aplikacji (takich jak identyfikator klienta i tajny klucz klienta).

Powrót do góry

Określanie wersji

Każde żądanie wysyłane do interfejsu Google Sites Data API powinno określać wersję 1.4. Aby określić numer wersji, użyj nagłówka HTTP GData-Version:

GData-Version: 1.4

Jeśli nie możesz ustawiać nagłówków HTTP, możesz też podać v=1.4 jako parametr zapytania w adresie URL. Jednak w miarę możliwości preferowany jest nagłówek HTTP.

Uwaga: biblioteki klienta automatycznie dostarczają odpowiednie nagłówki wersji, dlatego nie używaj parametru zapytania v=1.4, gdy korzystasz z biblioteki klienta.

Powrót do góry

Plik danych witryny

Kanał witryn może służyć do tworzenia listy stron Google, które należą do użytkownika lub do których ma uprawnienia do wyświetlania, a także do zmiany tytułu istniejącej witryny. W przypadku domen G Suite możesz też użyć tego narzędzia do utworzenia lub skopiowania całej witryny.

Witryny z ofertami

Aby wyświetlić listę witryn, do których użytkownik ma dostęp, wyślij uwierzytelnione żądanie GET pod tym adresem URL:

https://sites.google.com/feeds/site/domainName
Parametr pliku danychOpis
domainNamesite” lub domeny Twojej domeny G Suite (np. example.com).

Odpowiedź będzie zawierać plik danych z listą witryn:

GET /feeds/site/domainName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

HTTP/1.1 200 OK

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms"
    xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005"
    xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/site/site</id>
<updated>2009-12-02T17:47:34.406Z</updated>
<title>Site</title>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
    href="https://sites.google.com/feeds/site/site"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
    href="https://sites.google.com/feeds/feeds/site/domainName"/>
<link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName"/>
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/?start-index=2"/>
<generator version="1" uri="http://sites.google.com/">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry gd:etag="W/&quot;CkUAQH4_eil7I2A9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/site/myTestSite</id>
  <updated>2009-12-01T01:17:21.042Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T01:17:21.042Z</app:edited>
  <title>myTestSite</title>
  <summary/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myTestSite/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/>
  <sites:siteName>myTestSite</sites:siteName>
  <sites:theme>default</sites:theme>
</entry>
<entry gd:etag="W/&quot;DkQGQHczfA9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id>
  <updated>2009-12-01T02:25:21.987Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited>
  <title>myOtherTestSite</title>
  <summary>A new site to hold memories</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Memories Site"/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <sites:siteName>myOtherTestSite</sites:siteName>
  <sites:theme>iceberg</sites:theme>
</entry>
...
</feed>

Witryny są wymienione w kolejności alfabetycznej.

Tworzenie nowych witryn

Uwaga: ta funkcja jest dostępna tylko w domenach G Suite.

Nowe witryny można udostępniać, wysyłając żądanie HTTP POST do pliku danych witryny, na przykład:

POST /feeds/site/example.com HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008">
  <title>Source Site</title>
  <summary>A new site to hold memories</summary>
  <sites:theme>slate</sites:theme>
</entry>

Powyższe żądanie spowoduje utworzenie nowej Witryny Google z motywem „slate” w domenie G Suite example.com. Adres URL witryny to http://sites.google.com/a/example.com/source-site/.

Jeśli witryna zostanie utworzona, serwer odpowie wiadomością 201 Created. Wpis odpowiedzi będzie zawierał elementy dodane przez serwer, takie jak link do witryny, link do kanału ACL witryny, nazwa, tytuł i podsumowanie.

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007"
    xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
    xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"
    gd:etag="W/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/source-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>New Test Site</title>
  <summary>A new site to hold memories</summary>
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/source-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <sites:siteName>source-site</sites:siteName>
  <sites:theme>slate</sites:theme>
</entry>

Kopiowanie witryny

Uwaga: ta funkcja jest dostępna tylko w domenach G Suite.

Istniejącą witrynę można zduplikować w taki sam sposób jak tworząc nową. W pliku danych Atom POST należy jednak uwzględnić element <link> z elementem rel='source' wskazującym na plik danych witryny, który ma zostać skopiowany. Ten link będzie widoczny w przypadku każdej skopiowanej witryny. Oto przykład powielania witryny:

POST /feeds/site/example.com HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom">
  <link rel="http://schemas.google.com/sites/2008#source" type="application/atom+xml"
      href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <title>Copy of New Test Site</title>
  <summary>A newer site to hold memories</summary>
</entry>

Powyższe żądanie spowoduje skopiowanie witryny pod adresem http://sites.google.com/a/example.com/witryna-źródłowa/.

Ważne informacje:

  • Kopiowane mogą być tylko witryny i szablony witryn należące do uwierzytelnionego użytkownika.
  • Możesz też skopiować szablon witryny. Witryna jest szablonem, jeśli na stronie ustawień Google Sites zaznaczona jest opcja „Opublikuj tę witrynę jako szablon”.
  • Możesz skopiować witrynę z innej domeny, o ile jesteś właścicielem witryny źródłowej.

Aktualizowanie metadanych witryny

Aby zaktualizować tytuł lub podsumowanie witryny, wyślij HTTP PUT do linku edit w rekordzie witryny. Na przykład w tym przykładzie zaktualizujemy tytuł poprzedniej witryny na New Test Site2, a jej opis na Newer description.

PUT /feeds/site/example.com/source-site HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007"
    xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
    xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"
    gd:etag="W/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/source-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>New Test Site2</title>
  <summary>Newer description</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Category"/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/source-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <sites:siteName>source-site</sites:siteName>
</entry>

Dodawanie kategorii

Uwaga: ta funkcja jest dostępna tylko w domenach G Suite.

G Suite w Twojej domenie zawierają metadane kategorii, które ułatwiają kategoryzowanie witryn w domenie. Aby dodać lub zaktualizować metadane kategorii, wyślij żądanie HTTP PUT do linku edit w Twojej witrynie zawierającego tag category. Zwróć uwagę na pogrubiony wiersz w tym przykładzie:

PUT /feeds/site/example.com/source-site HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007"
    xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
    xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"
    gd:etag="W/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/source-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>My Team website</title>
  <summary>This site contains contact information and a summary of major efforts our team owns</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site"/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <sites:siteName>my-team-site</sites:siteName>
</entry>

W tym przykładzie edytujemy istniejącą witrynę i dodajemy kategorię „Witryna zespołu”.

Możesz też dodać więcej niż 1 kategorię, dodając dodatkowe tagi <category>. Zwróć uwagę na pogrubione wiersze w tym przykładzie:

PUT /feeds/site/example.com/my-team-site HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007"
    xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
    xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"
    gd:etag="W/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/my-team-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>My Team website</title>
  <summary>This site contains contact information and a summary of major efforts our team owns</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site/">
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Legal Department/">
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <sites:siteName>my-team-site</sites:siteName>
</entry>

W tym przykładzie dodaję 2 kategorie: „Witryna zespołu” i „Dział prawny”.

Mapowania adresów internetowych

Mapowania adresów internetowych umożliwiają użytkownikom Witryn zmapowanie własnych domen na witrynę Google. Na przykład http://www.mydomainsite.com można użyć zamiast http://sites.google.com/a/domain.com/mysite. W zależności od tego, gdzie jest hostowana Twoja witryna, możesz ręcznie zmodyfikować mapowania adresów internetowych witryny. Więcej informacji znajdziesz w tym artykule w Centrum pomocy.

Pobieranie mapowań adresów internetowych witryny

Aby pobrać mapowania adresów internetowych witryny, pobierz wpis/plik danych witryny z parametrem with-mappings=true:

GET /feeds/site/domainName?with-mappings=true HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

HTTP/1.1 200 OK

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms"
    xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005"
    xmlns:thr="http://purl.org/syndication/thread/1.0">
...
<entry gd:etag="W/&quot;DkQGQHczfA9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id>
  <updated>2009-12-01T02:25:21.987Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited>
  <title>myOtherTestSite</title>
  <summary>A new site to hold memories</summary>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel='webAddressMapping' href='http://www.mysitemapping.com'>
  <link rel='webAddressMapping' href='http://www.mysitemapping2.com'>
  <link rel='webAddressMapping' href='http://www.myothermapping.org'>
</entry>
...
</feed>

Istniejące mapowania będą wyświetlane jako link z parametrem rel='webAddressMapping'. W tym przykładzie są na przykład 3 elementy webAddressMapping wskazujące witrynę http://sites.google.com/site/myOtherTestSite.

Modyfikowanie mapowań adresów internetowych

Uwaga: podczas pracy z mapowaniami adresów URL wszystkie operacje GET/POST/PUT powinny określać parametr with-mappings=true. Jeśli tego parametru nie ma, elementy webAddressMapping nie będą zwracane we wpisach witryny (GET) ani uwzględniane podczas aktualizowania/usuwania mapowań (PUT) z wpisu.

Aby dodać, zaktualizować lub usunąć mapowanie, po prostu określ, zmień lub usuń taki link podczas tworzenia nowych witryn lub aktualizowania metadanych witryny. W identyfikatorze URI pliku danych o witrynie musi się znajdować parametr with-mappings=true. Uwaga: aby zaktualizować mapowanie adresów, musisz być administratorem witryny lub administratora domeny w przypadku witryny hostowanej w G Suite.

Na przykład poniższe żądanie aktualizuje mapowanie http://www.mysitemapping.com na http://www.my-new-sitemapping.com i usuwa http://www.mysitemapping2.com, pozostawiając link we wpisie:

PUT /feeds/site/domainName?with-mappings=true HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry gd:etag="W/&quot;DkQGQHczfA9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id>
  <updated>2009-12-01T02:25:21.987Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited>
  <title>myOtherTestSite</title>
  <summary>A new site to hold memories</summary>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel='webAddressMapping' href='www.my-new-sitemapping.com'>
  <!-- missing mapping2 will be deleted -->
  <link rel='webAddressMapping' href='http://www.myothermapping.org'>
</entry>

Pamiętaj, że mapowania adresu internetowego można też określić podczas tworzenia lub kopiowania witryny.

Powrót do góry

Obszar aktywności

Możesz pobrać ostatnią aktywność (zmiany) w witrynie, pobierając kanał aktywności. Każdy wpis w strumieniach aktywności zawiera informacje o zmianie wprowadzonej w witrynie.

Aby wysłać zapytanie do kanału aktywności, wyślij żądanie HTTP GET do adresu URL kanału aktywności:

https://sites.google.com/feeds/activity/domainName/siteName
Parametr pliku danychOpis
domainNamesite” lub domena Twojej hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny, którą znajdziesz w adresie URL witryny (np. myCoolSite).

Przykładowe żądanie i odpowiedź:

GET /feeds/activity/site/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

HTTP/1.1 200 OK

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">
<id>https://sites.google.com/feeds/activity/site/siteName</id>
<updated>2009-09-10T05:24:23.120Z</updated>
<title>Activity</title>
<link rel="alternate" type="text/html" href="http://sites.google.com/site/siteName/system/app/pages/recentChanges"/>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
  href="https://sites.google.com/feeds/activity/site/siteName"/>
<link rel="self" type="application/atom+xml"
  href="https://sites.google.com/feeds/activity/site/siteName"/>
<generator version="1" uri="http://sites.google.com">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CU4GQ3szfSl7ImA9WxNRFUg.&quot;">
<id>https://sites.google.com/feeds/activity/site/siteName/940375996952876062</id>
<updated>2009-09-10T03:38:42.585Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#deletion" label="deletion"/>
<title>home</title>
<summary type="xhtml">
  <div xmlns="http://www.w3.org/1999/xhtml">User deleted <a href="http://sites.google.com/site/siteName/home">home</a>
</div>
</summary>
<link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
  href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/>
<link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml"
  href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/>
<link rel="self" type="application/atom+xml"
  href="https://sites.google.com/feeds/activity/site/siteName/940375996952876062"/>
<author>
  <name>User</name>
  <email>user@gmail.com</email>
</author>
</entry>
<entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CU8DQn45fyl7ImA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/activity/site/siteName/7165439066235480082</id>
  <updated>2009-09-10T03:37:53.027Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
    term="http://schemas.google.com/sites/2008#edit" label="edit"/>
  <title>home</title>
  <summary type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">User2 edited <a href="http://sites.google.com/site/siteName/home">home</a>
  </div>
  </summary>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/>
  <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/>
  <link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/activity/site/siteName/7165439066235480082"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
</entry>
<entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CU8AR3s4cSl7ImA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/activity/site/siteName/127448462987345884</id>
  <updated>2009-09-10T03:37:26.539Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
    term="http://schemas.google.com/sites/2008#creation" label="creation"/>
  <title>home</title>
  <summary type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">User3 created <a href="http://sites.google.com/site/siteName/home">home</a>
  </div>
  </summary>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/>
  <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/>
  <link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/activity/site/siteName/127448462987345884"/>
  <author>
    <name>User3</name>
    <email>user3@gmail.com</email>
  </author>
</entry>
</feed>

Uwaga: aby uzyskać dostęp do tego kanału, musisz być współpracownikiem lub właścicielem witryny. Klient musi wysłać prawidłowy nagłówek Authorization i odnosić się do tokena uzyskanego na etapie autoryzowania żądań.

Powrót do góry

Kanał wersji

Aby pobrać historię zmian dowolnego wpisu w treści, wyślij żądanie HTTP GET na link do wersji wpisu:

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parametr pliku danychOpis
domainNamesite” lub domena Twojej hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny, którą znajdziesz w adresie URL witryny (np. myCoolSite).

Aby znaleźć link do wersji danej strony, komentarza, załącznika lub pozycji listy, najpierw pobierz wpis z pliku danych o treściach, używając identyfikatora CONTENT_ENTRY_ID. Wybrany wpis będzie zawierać <atom:link> do pliku danych z rewizją. Na przykład:

<link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/>

Przykładowe żądanie i odpowiedź:

GET /feeds/revision/domainName/siteName/CONTENT_ENTRY_ID HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

HTTP/1.1 200 OK

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
    xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID</id>
<updated>2009-09-10T04:33:35.337Z</updated>
<title>Revisions</title>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/>
<link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/>
<generator version="1" uri="http://sites.google.com">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry gd:etag="W/&quot;CU4GQmA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2</id>
  <updated>2009-09-10T03:38:42.045Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Home</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Latest content here</div>
  </content>
  <link rel="alternate" type="text/html"
    href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4f67c7&amp;rev1=2"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:pageName>home</sites:pageName>
  <sites:revision>2</sites:revision>
</entry>
<entry gd:etag="W/&quot;CU8DQ388eSl7ImA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1</id>
  <updated>2009-09-10T03:37:52.171Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Home</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Older content here</div>
  </content>
  <link rel="alternate" type="text/html"
    href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4bc7&amp;rev1=1"/>
  <link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:pageName>home</sites:pageName>
  <sites:revision>1</sites:revision>
</entry>
</feed>

Uwaga: aby mieć dostęp do tego pliku danych, musisz być współpracownikiem lub właścicielem witryny. Klient musi wysłać prawidłowy nagłówek Authorization i odwołać się do tokena uzyskanego w żądaniu autoryzacji.

Powrót do góry

Źródło treści

Pobieram treści

Źródło treści zawiera listę bieżących treści w Witrynach. Wyślij uwierzytelnione żądanie GET na ten adres URL:

https://sites.google.com/feeds/content/domainName/siteName
Parametr pliku danychOpis
domainNamesite” lub domena Twojej hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny, którą znajdziesz w adresie URL witryny (np. myCoolSite).

W efekcie otrzymujesz plik danych, który zawiera pierwszą stronę wpisów z treściami w witrynie. Każdy wpis w pliku danych będzie reprezentować inny typ wpisu dotyczącego treści, na przykład webpage, filecabinet, attachment, comment itd. Typ wpisu określa element <category scheme="http://schemas.google.com/g/2005#kind">. Listę obsługiwanych wartości kind znajdziesz w przewodniku.

Uwaga: ten plik danych może wymagać uwierzytelniania lub nie, w zależności od uprawnień do udostępniania w witrynie. Jeśli witryna jest prywatna, klient musi wysłać prawidłowy nagłówek Authorization (jak w przykładzie powyżej) i odwołać się do tokena uzyskanego w żądaniach autoryzacji.

GET /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

HTTP/1.1 200 OK

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
  xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
  xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
  xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/content/domainName/siteName</id>
<updated>2009-08-31T01:39:20.286Z</updated>
<title>Content</title>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/domainName/siteName"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/domainName/siteName"/>
<link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/domainName/siteName"/>
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/domainName/siteName/batch""/>
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
<generator version="1" uri="http://sites.google.com">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry gd:etag="W/&quot;Ck8GQXk7fil7ImA9WxNSFk0.&quot;">
  <id>https://sites.google.com/feeds/content/domainName/siteName/7322156894</id>
  <updated>2009-08-30T02:53:40.706Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:53:40.706Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Subpage</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div>
  </content>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/6492205817"/>
  <link rel="alternate" type="text"
      href="http://sites.google.com/site/siteName/subpage"/>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
      href="https://sites.google.com/feeds/revision/domainName/siteName/7322156894"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:pageName>subpage</sites:pageName>
  <sites:revision>5</sites:revision>
</entry>
<entry gd:etag="W/&quot;CkMBQH08fCl7ImA9WxNSFk0.&quot;">
  <id>https://sites.google.com/feeds/content/domainName/siteName/5930635231</id>
  <updated>2009-08-30T02:47:31.374Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:47:31.374Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#listitem" label="listpage"/>
  <title/>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
      href="https://sites.google.com/feeds/revision/domainName/siteName/5930635231"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:revision>1</sites:revision>
  <gs:field index="A" name="Issue/Feature">Implement cool feature X</gs:field>
  <gs:field index="B" name="Priority">P2</gs:field>
  <gs:field index="C" name="Owner"/>
  <gs:field index="D" name="Resolved"/>
</entry>
<entry gd:etag="W/&quot;AkYHQ3ozcCl7ImA9WxJaE08.&quot;">
  <id>https://sites.google.com/feeds/content/domainName/siteName/1265948545471894517</id>
  <updated>2009-08-03T19:35:32.488Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T19:35:32.488Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/>
  <title>files</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div>
  </content>
  <link rel="alternate" type="text"
      href="https://sites.google.com/domainName/siteName/files"/>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
      href="https://sites.google.com/feeds/revision/domainName/siteName/12671894517"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <gd:feedLink href="httpn://sites.google.com/feeds/content/domainName/siteName?parent=12671894517"/>
  <sites:pageName>files</sites:pageName>
  <sites:revision>1</sites:revision>
</entry>
...
</feed>

Uwaga: są to tylko pierwsze wyniki. Aby przejrzeć cały plik danych, kliknij link „Dalej”:

<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>

Omówienie elementów typowych dla platformy Atom znajdziesz w dokumentacji protokołu Google Data Protocol. Elementy z określonym wskaźnikiem w klasycznym interfejsie Sites API zostały opisane poniżej. Niektóre wpisy typu mają dodatkowe właściwości (nie wymienione poniżej), a inne nie. Na przykład wpis listitem może zawierać elementy <gs:field>, a webpage nie.

ElementOpis
<content ...>Tekst wewnętrzny to kod HTML strony. W przypadku niektórych wpisów (np. załączników) ten element będzie zawierać atrybut src wskazujący plik.
<link rel="alternate" ...>Link do strony lub elementu w Witrynach Google.
<link rel="http://schemas.google.com/sites/2008#revision" ...>Atrybut href wskazuje na plik danych z rewizją wpisu.
<link rel="http://schemas.google.com/sites/2008#parent" ...>Atrybut href wskazuje wpis nadrzędny wpisu.
<link rel="http://schemas.google.com/sites/2008#template" ...>Atrybut href wskazuje stronę szablonu wpisu.
<category scheme="http://schemas.google.com/g/2005#kind" ...>label to typ wpisu.
<category term="http://schemas.google.com/g/2005#template" ...>label=template oznacza, że wpis jest szablonem.
<gd:feedLink>Atrybut href wskazuje elementy podrzędne elementu nadrzędnego.
<sites:pageName>Nazwa przestrzeni internetowej strony, która odpowiada nazwie w adresie URL strony.
<sites:revision>Bieżący numer wersji.

Przykłady zapytań do źródła treści

W pliku danych o treściach możesz wyszukiwać informacje, korzystając z niektórych standardowych parametrów zapytania interfejsu Google Data API oraz parametrów specyficznych dla klasycznego interfejsu Sites API. Więcej szczegółowych informacji oraz pełną listę obsługiwanych parametrów znajdziesz w przewodniku po dokumentach referencyjnych.

Pobieranie określonych typów wpisów

Aby pobrać tylko konkretny typ wpisu, użyj parametru kind. Ten przykład zwraca tylko rekordy webpage:

GET /feeds/content/domainName/siteName?kind=webpage

Aby zwrócić więcej niż 1 typ wpisu, oddziel każdy kind przecinkiem. W tym przykładzie zwracane są wpisy filecabinet i listpage:

GET /feeds/content/domainName/siteName?kind=filecabinet,listpage

Zamiast parametru kind możesz użyć standardowego formatu zapytania Google Data /-/category:

GET /feeds/content/domainName/siteName/-/filecabinet|listpage

Pobieranie szablonów stron

Ten przykład zwraca tylko template stron:

GET /feeds/content/domainName/siteName/-/template

Aby zwrócić wszystkie typy wpisów i uwzględnić strony template, użyj:

GET /feeds/content/domainName/siteName/-/template|-template

Pobieranie strony według ścieżki

Jeśli znasz ścieżkę względną strony w Google Site, możesz użyć parametru path, aby pobrać tę stronę. W tym przykładzie zwrócona zostanie strona o adresie http://sites.google.com/site/siteName/path/to/the/page:

GET /feeds/content/domainName/siteName?path=/path/to/the/page

Pobieranie wszystkich wpisów na stronie nadrzędnej

Jeśli znasz identyfikator wpisu strony, możesz użyć parametru parent, aby pobrać wszystkie wpisy podrzędne (jeśli takie istnieją):

GET /feeds/content/domainName/siteName?parent=CONTENT_ENTRY_ID

Uwzględnianie wersji roboczych lub usuniętych wpisów

Aby uwzględnić wersje robocze lub usunięte wpisy, użyj odpowiednio parametrów include-drafts lub include-deleted. Ten przykład zawiera wersje robocze wpisów w kanale treści:

GET /feeds/content/domainName/siteName?include-drafts=true

Wyszukiwanie całego tekstu

Aby przeszukać całą zawartość witryny, użyj parametru q, aby przeprowadzić wyszukiwanie pełnotekstowe:

GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for

Powrót do góry



Tworzenie treści

Nowe treści (strony internetowe, strony z listami, strony w magazynie plików, strony z ogłoszeniami itp.) można tworzyć, wysyłając żądanie HTTP POST do źródła treści:

https://sites.google.com/feeds/content/domainName/siteName

Listę obsługiwanych typów wpisów znajdziesz w opisie parametru kind w Przewodniku.

Tworzenie nowych elementów lub stron

W tym przykładzie tworzymy nowy element webpage na najwyższym poziomie witryny, dodajemy trochę kodu XHTML do jej korpusu oraz ustawiamy tytuł nagłówka na „Nowy tytuł strony internetowej”:

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 328
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>New Webpage Title</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">HTML body goes here</div>
  </content>
</entry>

Jeśli operacja się powiedzie, serwer odpowie, zwracając 201 Created i kopię wpisu.

Tworzenie elementów/stron w niestandardowych ścieżkach URL

W przypadku poprzedniego przykładu strona zostanie utworzona pod adresem URL http://sites.google.com/domainName/siteName/new-webpage-title i będzie mieć nagłówek „Nowy tytuł strony internetowej”. Oznacza to, że <atom:title> jest normalizowane do new-webpage-title w przypadku adresu URL. Aby dostosować ścieżkę adresu URL strony, możesz ustawić element <sites:pageName>.

W tym przykładzie tworzymy nowy element filecabinet z nagłówkiem strony „Przechowywanie plików”, ale stronę tworzymy pod adresem URL http://sites.google.com/domainName/siteName/files przez określenie elementu <sites:pageName>.

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 393
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/>
  <title>File Storage</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">A list of files is below.</div>
  </content>
  <sites:pageName>files</sites:pageName>
</entry>

Aby nazwać ścieżkę adresu URL strony, serwer stosuje te reguły pierwszeństwa:

  1. <sites:pageName> (jeśli występuje). Musi spełniać warunek a-z, A-Z, 0-9, -, _.
  2. <atom:title> nie może być puste, jeśli parametr pageName jest nieobecny. Normalizacja polega na przycięciu i skróceniu spacji do „-” oraz usunięciu znaków, które nie pasują do a-z, A-Z, 0-9, -, _.

Serwer zaakceptował na przykład element „Custom_Page2”.

Tworzenie podstron

Aby utworzyć podstrony (dzieci) pod stroną nadrzędną, dodaj <link rel="http://schemas.google.com/sites/2008#parent"> do nowego wpisu Atom. Ustaw atrybut href linku na link do wpisu nadrzędnego.

W tym przykładzie tworzymy nowy element announcement z nagłówkiem „announcement” (ogłoszenie) na stronie nadrzędnej z wpisem o identyfikatorze PARENT_ENTRY_ID. Dołączone są też treści XHTML dla korpusu strony:

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 470
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#announcement" label="announcement"/>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/>
  <title>announcement</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div>
  </content>
</entry>

Szablony stron

Tworzenie szablonów stron

Proces tworzenia szablonu strony jest taki sam jak w przypadku tworzenia nowych elementów/strontworzenia podstron. Różnica polega na dodaniu elementu category z terminem i etykietą odpowiednio „http://schemas.google.com/g/2005#template” i „template”.

W tym przykładzie tworzymy nowy szablon webpage.

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 464
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <category scheme="http://schemas.google.com/g/2005#labels" term="http://schemas.google.com/g/2005#template" label="template"/>
  <title>Webpage Template</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div>
  </content>
</entry>

Tworzenie stron na podstawie szablonu

Podobnie jak w przypadku szablonów stron, możesz utworzyć nową stronę na podstawie szablonu, dodając element <link> z wartością rel='http://schemas.google.com/sites/2008#template' wskazujący na link do szablonu strony.

W tym przykładzie nowa strona filecabinet jest tworzona na podstawie istniejącego szablonu strony, który definiuje kontener plików.

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 464
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/>
  <title>File Cabinet Page From Template</title>
  <link rel='http://schemas.google.com/sites/2008#template' type='application/atom+xml'
    href='https://sites.google.com/feeds/content/domainName/siteName/ENTRY_ID'/>
</entry>

Uwaga: mimo że szablon definiuje pole <category>, musisz je uwzględnić w formularzu. Pamiętaj też, że jeśli dodasz element <content>, serwer go odrzuci.

Przesyłanie plików

Podobnie jak w przypadku Witryn Google, interfejs API umożliwia przesyłanie załączników do stron magazynu plików i stron nadrzędnych.

Aby przesłać załącznik do rodzica, wyślij żądanie HTTP POST do adresu URL pliku danych o treściach:

https://sites.google.com/feeds/content/domainName/siteName

Treść POST powinna być żądaniem wieloczęściowym MIME, aby połączyć zawartość pliku z <atom:entry> zawierającym metadane załącznika. Aby określić miejsce utworzenia załącznika, obiekt <atom:entry> powinien odwoływać się do własnego linku do wpisu nadrzędnego. Więcej informacji znajdziesz w artykule Tworzenie stron podrzędnych.

Przesyłam załączniki

Oto przykład przesłania pliku PDF do magazynu plików o identyfikatorze PARENT_ENTRY_ID. Załącznik zostanie utworzony z tytułem „Plik PDF” i (opcjonalnie) opisem „Pakiet HR”.

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 7221984
Content-Type: multipart/related; boundary=END_OF_PART
--END_OF_PART
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://schemas.google.com/g/2005#kind"
          term="http://schemas.google.com/sites/2008#attachment" label="attachment"/>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
        href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/>
  <title>PDF File</title>
  <summary>HR packet</summary>
</entry>

--END_OF_PART
Content-Type: application/pdf

... pdf contents here ...

--END_OF_PART--

Jeśli przesyłanie się uda, serwer w odpowiedzi przesyła żądanie 201 Created i kopię nowo utworzonego wpisu załącznika.

Przesyłanie załącznika do folderu

Aby przesłać załącznik do istniejącego folderu w filecabinet, dodaj kategorię z atrybutem „term” ustawionym na nazwę folderu:

<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">

Załączniki internetowe

Załączniki internetowe to szczególne rodzaje załączników. To linki do innych plików w internecie, które możesz dodać do listy plików w folderze. Ta funkcja jest analogiczna do metody przesyłania „Dodaj plik za pomocą adresu URL” w interfejsie Witryn Google.

Uwaga: załączniki internetowe można tworzyć tylko w sekcji szafy. Nie można ich przesyłać na strony innego typu.

W tym przykładzie tworzymy identyfikator webattachment w magazynie plików, do której odwołuje się identyfikator FILECABINET_ENTRY_ID. Dla tytułu i opisu (opcjonalnego) podane są odpowiednio „GoogleLogo” i „ładne kolory”.

POST /feeds/content/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Type: application/atom+xml
Content-Length: 531

<entry xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://schemas.google.com/g/2005#kind"
          term="http://schemas.google.com/sites/2008#webattachment" label="webattachment"/>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
        href="https://sites.google.com/feeds/content/domainName/siteName/FILECABINET_ENTRY_ID"/>
  <title>GoogleLogo</title>
  <summary>nice colors</summary>
  <content type="image/gif" src="http://www.google.com/images/logo.gif"></content>
</entry>

POST tworzy w folderze użytkownika link, który wskazuje obraz „http://www.google.com/images/logo.gif”.

Powrót do góry



Aktualizowanie treści

Metadane (tytuł, pageName itp.) i treści strony można edytować za pomocą pojedynczego żądania PUT do linku edit. Treść żądania powinna zawierać wpis Atom opisujący zaktualizowaną stronę. Wyjątkiem od tej reguły jest wpis załącznika, w którym można go używać tylko do aktualizowania metadanych załącznika. Aby zmienić zawartość załączonego pliku, po prostu dodaj dane w postaci nieprzetworzonych danych w treści PUT żądania do załączonego pliku edit-media. Możesz też zaktualizować metadane i załączony plik jednocześnie, używając żądania MIME multipart.

Aby mieć pewność, że Twoja aktualizacja nie zastąpi zmian wprowadzonych przez innego klienta, dodaj wartość ETag oryginalnego wpisu. Możesz to zrobić, podając wartość ETag w nagłówku HTTP If-Match lub dodając atrybut gd:etag oryginalnego rekordu w zaktualizowanym rekordzie. Aby określić wartość ETag oryginalnego wpisu, sprawdź atrybut gd:etag elementu <entry>. W przypadku wpisów multimedialnych ich wartość ETag może być dostępna w atrybucie gd:etag linku edit-media.

Jeśli chcesz zaktualizować wpis niezależnie od tego, czy ktoś inny zaktualizował go po pobraniu, użyj If-Match: * bez dodawania ETag. Więcej informacji o eTag znajdziesz w przewodniku po interfejsach Google Data API.

zaktualizowanie metadanych elementu lub treści HTML;

Aby zaktualizować metadane lub zawartość HTML wpisu, wyślij HTTP PUT do linku edit wpisu.

Oto przykład aktualizacji wpisu listpage (reprezentowanego przez jego identyfikator ENTRY_ID) z tymi zmianami:

  • Tytuł jest zmieniany na „Zaktualizowany treść”.
  • Zaktualizowana treść HTML
  • Nazwa pierwszej kolumny na liście jest aktualizowana na „Właściciel”.
  • Ścieżka URL strony jest modyfikowana przez element <sites:pageName>
PUT /feeds/content/domainName/siteName/ENTRY_ID
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 816
Content-Type: application/atom+xml

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:gd="http://schemas.google.com/g/2005"
    gd:etag="W/&quot;CEEBRn0ymA9WxJWEUw.&quot;">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#listpage" label="listpage"/>
  <title>Updated Title</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div>
  </content>
  <gs:worksheet name="listpage"/>
  <gs:header row="1"/>
  <gs:data startRow="2">
    <gs:column index="A" name="Owner"/>
    <gs:column index="B" name="Decription"/>
    <gs:column index="C" name="Completed"/>
  </gs:data>
  <sites:pageName>newPagePath</sites:pageName>
</entry>

Uwaga: wpis (zwracany przez serwer) będzie zawierać więcej elementów niż w przykładzie powyżej.

Zastępowanie zawartości załącznika

Poniżej znajduje się przykład zastąpienia zawartości załącznika, ale pozostawienie jej metadanych bez zmian. Ponieważ żądanie zawiera nową treść, używany jest link edit-media wpisu załącznika.

PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 70581
Content-Type: application/msword

... doc contents here ...

Aktualizowanie metadanych i treści załącznika

Poniżej znajduje się przykład jednoczesnego aktualizowania metadanych załącznika i jego zawartości. Nazwa załącznika zostanie zmieniona na „Nowy tytuł”, a jego zawartość zostanie zastąpiona zawartością pliku ZIP. Ponieważ żądanie zawiera nową zawartość pliku, używany jest link edit-media do pozycji załącznika.

Pamiętaj, że dołączenie ETag do metadanych wymaga domniemanego If-Match dla treści multimedialnych, ponieważ każda aktualizacja zawartości multimedialnej powoduje zmianę parametru ETag metadanych.

PUT /feeds/media/content/domainName/siteName/ATTACHMENT_ENTRY_ID
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Type: multipart/related; boundary="END_OF_PART"
--END_OF_PART
Content-Type: application/atom+xml

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="BxAaTxRZAyp7ImBq">
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
        href="https://sites.google.com/feeds/content/domainName/siteName/ATTACHMENT_ENTRY_ID"/>
  <title>New Title</title>
</entry>

--END_OF_PART
Content-Type: application/zip

... zip contents here ...

--END_OF_PART

Powrót do góry



Usuwam treść

Aby usunąć element z witryny Google, najpierw pobierz wpis, a następnie wyślij DELETEżądanie do adresu URL edit wpisu. Jest to ten sam adres URL używany podczas aktualizacji metadanych elementu lub treści HTML.

DELETE /feeds/content/domainName/siteName/ENTRY_ID
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
If-Match: <ETag or * here>

Jeśli wpis został usunięty, serwer w odpowiedzi przesyła żądanie HTTP 200 OK.

Jeśli chcesz mieć pewność, że nie usuniesz wpisu, który został zmieniony przez innego klienta od czasu jego pobrania, dodaj nagłówek HTTP If-Match zawierający wartość ETag pierwotnego wpisu. Wartość ETag oryginalnego wpisu możesz określić, analizując atrybut gd:etag elementu <entry>.

Jeśli chcesz usunąć wpis niezależnie od tego, czy został on zaktualizowany przez inną osobę od czasu jego pobrania, użyj poleceniaIf-Match: * bez dołączania tagu ETag. (W takim przypadku nie trzeba pobierać wpisu przed jego usunięciem).

Więcej informacji o eTag znajdziesz w przewodniku po interfejsach Google Data API.

Powrót do góry



Pobieranie załączników

Gdy masz wpis z załącznikiem, możesz pobrać plik, wysyłając uwierzytelnione żądanie HTTP GET do linku src <content> wpisu. Przykład linku do treści pliku PDF:

<content type="application/pdf"
  src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>

Powrót do góry

Plik danych ACL

Omówienie uprawnień do udostępniania (ACL)

Każdy wpis na liście kontroli dostępu (ACL) odpowiada roli dostępu określonego podmiotu: użytkownika, grupy użytkowników, domeny lub domyślnego dostępu (witryny publicznej). Wpisy będą wyświetlane tylko dla jednostek z jawnym dostępem – dla każdego adresu e-mail w panelu „Osoby z dostępem” na ekranie udostępniania w interfejsie Witryn Google będzie wyświetlany 1 wpis. Dzięki temu administratorzy domeny nie będą wyświetlani, nawet jeśli mają pośredni dostęp do witryny.

Role

Element roli reprezentuje poziom dostępu, jaki może mieć encja. Element gAcl:role może mieć 4 możliwe wartości:

  • Odczytujący – wyświetlający (odpowiednik dostępu tylko do odczytu).
  • writer – współpracownik (odpowiednik uprawnień do odczytu i zapisu).
  • owner (właściciel) – zwykle administrator witryny (odpowiada to uprawnieniom do odczytu i zapisu).

Zakresy

Element zakresu reprezentuje element, który ma ten poziom dostępu. Element gAcl:scope może mieć pięć typów:

  • user – wartość adresu e-mail, np. „użytkownik@gmail.com”.
  • grupa – adres e-mail grupy dyskusyjnej Google, np. „grupa@domena.com”.
  • domain – nazwa domeny G Suite, np. „domena.com”.
  • invite (zaproszenie) – użytkownik, który został zaproszony do witryny, ale nie został jeszcze dodany do listy ACL witryny. (niedostępne, jeśli podana jest wersja 1.3 lub starsza)
  • default – jest tylko jeden możliwy zakres typu „default”, który nie ma wartości (np.<gAcl:scope type="default">). Ten konkretny zakres kontroluje dostęp domyślnie każdego użytkownika do witryny publicznej.

Uwaga: domeny nie mogą mieć wartości gAcl:role ustawionej na poziomie dostępu „właściciel”. Mogą to być tylko czytelnicy lub zapisy.

Zakres „zaproszenie”.

Gdy dodajesz do listy ACL co najmniej 1 użytkownika, który nie ma jeszcze konta Google, interfejs API zwraca zakres zaproszenia. Interfejs API zwraca adres URL z wbudowanym tokenem, który musisz przekazać zaproszonym użytkownikom, aby mogli zaakceptować zaproszenie.

Ta metoda zaproszenia pozwala zapraszać użytkowników spoza Google bez wcześniejszej wiedzy o tym, jakiego adresu e-mail chcą użyć. Jeśli użytkownicy klikną adres URL zaproszenia z wbudowanym tokenem, mogą zarejestrować się, aby uzyskać dostęp, podając dowolny adres e-mail. Dodatkowo wielu użytkowników może użyć tego adresu URL, aby zaakceptować zaproszenie, więc może to być przydatne, jeśli zapraszasz jednego użytkownika lub grupę użytkowników.

Uwaga: zakres „zaproś” jest dostępny tylko w gdata w wersji 1.4 i nowszych. Nie będzie to działać, jeśli wprost określisz wersję 1.3 lub niższą.

Pobieranie pliku danych ACL

Plik danych ACL służy do kontrolowania uprawnień do udostępniania witryny i jest dostępny pod tym adresem URI:

https://sites.google.com/feeds/acl/site/domainName/siteName
Parametr pliku danychOpis
domainNamesite” lub domena Twojej hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny podana w jej adresie URL (np. myCoolSite).

Warto zauważyć, że każdy wpis w pliku danych witryny zawiera link do tego pliku danych:

 <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>

Aby pobrać uprawnienia do udostępniania witryny, wyślij żądanie HTTP GET do identyfikatora URI kanału ACL:

GET /feeds/acl/site/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

Serwer odpowie 200 OK i plikiem danych z rekordami ACL:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008"
    xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms"
    xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005"
    xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/acl/site/domainName/siteName</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<title>Acl</title>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
    href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
    href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<generator version="1" uri="http://sites.google.com">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry>
  <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40gmail.com</id>
  <updated>2009-12-03T22:01:05.963Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/>
  <gAcl:scope type="user" value="userA@google.com"/>
  <gAcl:role value="owner"/>
</entry>
<entry>
  <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com</id>
  <updated>2009-12-03T22:01:05.963Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/>
  <gAcl:scope type="user" value="userB@gmail.com"/>
  <gAcl:role value="writer"/>
</entry>
<entry>
  <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com</id>
  <updated>2009-12-03T22:01:05.963Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/>
  <gAcl:scope type="user" value="userC@gmail.com"/>
  <gAcl:role value="reader"/>
</entry>
...
</feed>

Powrót do góry

Udostępnianie witryny

Kanał ACL akceptuje żądania GET, POST i PUT. Aby wstawić nową rolę do pliku danych ACL, wystarczy wysłać żądanie POST do pliku danych ACL witryny.

Uwaga: niektóre uprawnienia dostępu do plików mogą być dostępne tylko wtedy, gdy domena jest skonfigurowana w taki sposób, aby zezwalać na takie uprawnienia (np. jeśli udostępnianie poza domeną w przypadku domen G Suite jest włączone).

W tym przykładzie dodajemy do witryny nowego współpracownika (pisarza):

POST /feeds/acl/site/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'>
  <category scheme='http://schemas.google.com/g/2005#kind'
    term='http://schemas.google.com/acl/2007#accessRule'/>
  <gAcl:role value='writer'/>
  <gAcl:scope type='user' value='new_writer@example.com'/>
</entry>

Po pomyślnym wstawieniu zwracany jest parametr 201 Created i nowy wpis:

<entry>
  <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com</id>
  <updated>2009-12-03T22:01:05.963Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/>
  <gAcl:role value='writer'/>
  <gAcl:scope type='user' value='new_writer@example.com'/>
</entry>

Zapraszanie użytkowników za pomocą uprawnień „zaproszenie”

Jeśli dodasz użytkowników, którzy nie mają kont Google, interfejs API zwróci adres URL, który musisz podać użytkownikom, których chcesz zaprosić. Po kliknięciu adresu URL użytkownik będzie mógł uzyskać dostęp do witryny, logując się na istniejące konto lub tworząc nowe.

Udany wynik funkcji wywołania zwraca wartość 201 Created i nowy wpis z adresem URL, który należy przekazać użytkownikowi:

<entry>
  <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com</id>
  <updated>2009-12-03T22:01:05.963Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
  <link rel="http://schemas.google.com/sites/2008#invite" type="text/html"href="domainName/siteName?invite=inviteToken"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com"/>
  <gAcl:role value='writer'/>
  <gAcl:scope type='invite' value='new_invite%40example.com'/>
</entry>

Udostępnianie na poziomie grupy i domeny

Podobnie jak w przypadku udostępniania witryny jednemu użytkownikowi możesz udostępnić ją całej grupie dyskusyjnej Google lub domenie G Suite. Wymagane wartości scope znajdziesz poniżej.

Udostępnianie przy użyciu adresu e-mail grupy:

<gAcl:scope type="group" value="group@example.com"/>

Udostępnianie całej domenie:

<gAcl:scope type="domain" value="example.com"/>

Udostępnianie na poziomie domeny jest obsługiwane tylko w domenach G Suite i tylko w domenie, w której hostowana jest witryna. Na przykład użytkownik witryny http://sites.google.com/a/domain1.com/siteA może udostępniać całą witrynę tylko użytkownikom z domeny domain1.com, a nie z domeny domain2.com. Użytkownicy witryn, które nie są hostowane w domenie G Suite (np. http://sites.google.com/site/siteB), nie mogą zapraszać użytkowników z innych domen.

Zmiana uprawnień do udostępniania

Aby zaktualizować wpis na liście kontroli dostępu, w razie potrzeby zmodyfikuj go i wyślij żądanie HTTP PUT do linku edit wpisu. Jest to po prostu element <link>, dla którego atrybut „rel” ma wartość „edit”. W przypadku poprzedniego przykładu link ten:

<link rel='edit' type='application/atom+xml'
    href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>

Podany niżej fragment kodu zmienia rolę użytkownika new_writer@gmail.com na „czytnik”:

PUT /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'>
  <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/>
  <gAcl:role value='reader'/>
  <gAcl:scope type='user' value='new_writer@gmail.com'/>
</entry>

Usuwanie uprawnień do udostępniania

Aby usunąć uprawnienia tego użytkownika, prześlij prośbę DELETE do tego samego adresu edit, który został użyty do wysłania prośby PUT:

DELETE /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

Serwer w odpowiedzi wyśle ciąg 200 OK.

Powrót do góry

Tematy specjalne

Ponowne pobieranie pliku danych lub wpisu

Jeśli chcesz pobrać wcześniej pobrany plik lub wpis, możesz zwiększyć wydajność, prosząc serwer o wysłanie listy lub wpisu tylko wtedy, gdy zmieniły się one od czasu ostatniego pobrania.

Aby wykonać takie wyszukiwanie warunkowe, wyślij żądanie HTTP GET, które zawiera nagłówek HTTP If-None-Match. W nagłówku podaj tag ETag listy lub wpisu, który znajdziesz w atrybucie gd:etag elementu <feed> lub <entry>.

Przykład użycia pliku danych o witrynie:

GET /feeds/site/domainName/myOtherTestSite/
GData-Version: 1.4
If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."

Gdy serwer otrzyma to żądanie, sprawdzi, czy produkt, którego dotyczy prośba, ma ten sam ETag, który został przez Ciebie podany. Jeśli znaczniki ETag pasują do siebie, oznacza to, że element nie uległ zmianie, a serwer zwraca kod stanu HTTP 304 Not Modified lub kod stanu HTTP 412 Precodition Failed. Oba te kody stanu oznaczają, że pobrany już element jest aktualny.

Jeśli znaczniki ETag się nie zgadzają, oznacza to, że element został zmodyfikowany od ostatniego żądania i serwer zwraca ten element.

Więcej informacji o eTag znajdziesz w przewodniku po interfejsach Google Data API.

Przetwarzanie wsadowe

Żądania wsadowe dają klientowi możliwość wykonania wielu operacji w jednym żądaniu, zamiast robić każdą z nich osobno.

Serwer wykona jak najwięcej żądanych zmian i zwróci informacje o stanie, które możesz wykorzystać do oceny powodzenia lub niepowodzenia każdej operacji. Więcej informacji o przetwarzaniu wsadowym w interfejsie Google Data API znajdziesz w artykule Przetwarzanie wsadowe z użyciem interfejsów API danych Google

Każda operacja w pliku zbiorczym ma element <id>, z wyjątkiem operacji wstawiania. Ten element jest taki sam jak URL żądania, którego normalnie używasz podczas aktualizowania, usuwania lub wysyłania zapytań dotyczących źródła treści. Jeśli na przykład aktualizujesz edycję, ustaw parametr <id> na link edit do odpowiedniego wpisu. Służy do identyfikowania wpisu docelowego. Nowe wpisy nie mają elementów <id>, ponieważ nie zostały jeszcze utworzone. Zamiast tego możesz zdefiniować wartość ciągu znaków w elemencie <batch:id>, która zostanie zwrócona w odpowiedzi serwera i użyta do wyszukania odpowiedniego wpisu.

Aby wysłać prośbę zbiorczą, utwórz plik danych zbiorczego i wyślij żądanie HTTP POST do linku zbiorczego pliku danych:

<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/site/siteName/batch"/>

Poniższy przykład pokazuje, jak wysłać zapytanie do wpisu na stronie internetowej, a także wstawić go, zaktualizować i usunąć wpis na stronie internetowej:

POST /feeds/content/site/siteName/batch HTTP/1.1
Host: sites.google.com
Accept: */*
If-Match: *
GData-Version: 1.4
Authorization: <your authorization header here>

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"
      xmlns:gd="http://schemas.google.com/g/2005" xmlns:batch='http://schemas.google.com/gdata/batch'>
  <entry>
    <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
    <batch:operation type="query"/>
  </entry>
  <entry>
    <batch:id>1</batch:id>
    <batch:operation type='insert'/>
    <category scheme="http://schemas.google.com/g/2005#kind"
        term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
    <title>New Webpage1</title>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">HTML body goes here</div>
    </content>
  </entry>
  <entry gd:etag="&quot;YDgpeyI.&quot;">
    <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
    <batch:operation type='update'/>
    <category scheme="http://schemas.google.com/g/2005#kind"
        term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
    <title>Updated Title for Webpage2</title>
    ...
    <batch:operaation type="update"/>
  </entry>
  <entry gd:etag="&quot;YassseyI.&quot;">
    <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
    <batch:operation type='delete'/>
  </entry>
</feed>

Zwrócony kanał będzie zawierał 1 wynik dla każdej operacji:

 
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
    xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
    xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<updated>2009-11-10T22:44:08.369Z</updated>
<title>Batch Feed</title>
<entry gd:etag="&quot;YDgpsdfeyI.&quot;">
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
  <published>2009-08-31T04:42:45.251Z</published>
  <updated>2009-10-25T22:46:13.729Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T22:46:13.671Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Page Title</title>
  ...
  <batch:status code="200" reason="Success"/>
  <batch:operation type="query"/>
</entry>
<entry gd:etag="&quot;YDsseyI.&quot;">
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID4</id>
  <published>2009-11-10T22:44:08.531Z</published>
  <updated>2009-11-10T22:44:08.560Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T22:44:08.531Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>New Webpage1</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">
    <table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox">
      <tbody>
        <tr>
          <td class="sites-layout-tile sites-tile-name-content-1">
            <div>HTML body goes here</div>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</content>
...
<batch:id>1</batch:id>
<batch:status code="201" reason="Created"/>
<batch:operation type="insert"/>
</entry>
<entry gd:etag="&quot;YDkpeyI.&quot;">
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
  <updated>2009-11-10T22:44:09.296Z</updated>
  <title>Updated Title for Webpage2</title>
  ...
  <sites:pageName>updated-title-for-webpage2</sites:pageName>
  <sites:revision>5</sites:revision>
  <batch:status code="200" reason="Success"/>
  <batch:operation type="update"/>
</entry>
<entry>
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
  <title>Deleted</title>
  <content>Deleted</content>
  <batch:status code="200" reason="Success"/>
  <batch:operation type="delete"/>
</entry>
</feed>

Powrót do góry