Przewodnik po protokołów

Interfejs API klasycznej wersji Witryn Google umożliwia aplikacjom uzyskiwanie dostępu do treści w Witrynach Google, a także ich publikowanie i modyfikowanie. Dodatkowo aplikacja może poprosić o listę ostatniej aktywności, pobrać historię zmian oraz przesłać lub pobrać załączniki i pliki.

Odbiorcy

W tym dokumencie zakładamy, że znasz ogólne zasady działania protokołu interfejsów API danych Google.

Ten dokument jest przeznaczony dla programistów, którzy chcą pisać aplikacje klienckie mogące współdziałać z Witrynami Google. Zawiera on serię przykładów podstawowych interakcji z interfejsem Data API przy użyciu nieprzetworzonego kodu XML/HTTP wraz z objaśnieniami. Po przeczytaniu tego dokumentu możesz dowiedzieć się więcej o interakcji z interfejsem API za pomocą naszych bibliotek klienta, czytając przykłady w konkretnych językach, które znajdziesz w innych przewodnikach na pasku nawigacyjnym po lewej stronie.

Informacje o materiałach zawartych w tym przewodniku znajdziesz w przewodniku referencyjnym.

Autoryzowanie zapytań

Gdy Twoja aplikacja żąda niepublicznych danych użytkownika, musi dołączyć 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 Data API Witryn Google dotyczące 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. Aktywuj interfejs Google Sites Data API w Konsoli interfejsów API Google. (jeśli interfejsu API nie ma na liście w Konsoli interfejsów API, 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 zakres danych 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 ustawić nagłówków HTTP, możesz też określić v=1.4 jako parametr zapytania w adresie URL. Jeśli to możliwe, zalecamy jednak używanie nagłówka HTTP.

Uwaga: biblioteki klienta automatycznie dostarczają odpowiednie nagłówki wersji, więc 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 wyświetlania listy Witryn Google, których użytkownik jest właścicielem lub do których ma uprawnienia do wyświetlania, a także do modyfikowania tytułu istniejącej witryny. W przypadku domen G Suite można go też używać do tworzenia lub kopiowania całej witryny.

Witryny z ofertami

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

https://sites.google.com/feeds/site/domainName
Parametr pliku danychOpis
domainName„site” lub domena hostowana w G Suite (np. example.com).

Odpowiedź będzie zawierać kanał 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 porządku alfabetycznym.

Tworzenie nowej wersji 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 kanału 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 wersji Witryn Google z motywem „łupek” w domenie G Suite example.com. Adres URL witryny będzie wyglądał tak: http://sites.google.com/a/example.com/source-site/.

Jeśli witryna zostanie utworzona, serwer odpowie 201 Created. Wpis odpowiedzi będzie zawierać elementy dodane przez serwer, takie jak link do witryny, link do kanału ACL witryny, nazwa witryny, 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 tworzenie nowej wersji Witryn. Jednak we wpisie Atom żądania POST uwzględnij element <link> z atrybutem rel='source' wskazującym kanał witryny, którą chcesz skopiować. Każda skopiowana witryna będzie miała ten link. 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 http://sites.google.com/a/example.com/source-site/.

Ważne kwestie:

  • Można kopiować tylko witryny i szablony witryn, których właścicielem jest uwierzytelniony użytkownik.
  • Możesz też skopiować szablon witryny. Witryna jest szablonem, jeśli na stronie ustawień Witryn Google zaznaczono ustawienie „Opublikuj tę witrynę jako szablon”.
  • Możesz skopiować witrynę z innej domeny, pod warunkiem że jesteś wymieniony jako właściciel witryny źródłowej.

Aktualizowanie metadanych witryny

Aby zaktualizować tytuł lub podsumowanie witryny, wyślij żądanie HTTP PUT do linku edit wpisu witryny. Na przykład w poniższym przykładzie tytuł poprzedniej witryny zostanie zaktualizowany do New Test Site2, a jej opis do 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.

Witryny G Suite w Twojej domenie zawierają metadane kategorii, które są przydatne do kategoryzowania witryn w domenie. Aby dodać lub zaktualizować metadane kategorii, wyślij żądanie HTTP PUT do linku edit wpisu witryny, który zawiera tag category. Zobacz 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 edytowana jest istniejąca witryna i dodawana jest kategoria „Witryna zespołu”.

Możesz też dodać kilka kategorii, dodając kolejne tagi <category>. Zobacz 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 dodano 2 kategorie: „Witryna zespołu” i „Dział prawny”.

Mapowania adresów internetowych

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

Pobieranie mapowań adresów internetowych witryny

Aby zwrócić mapowania adresów internetowych witryny, pobierz wpis/kanał 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 rel='webAddressMapping'. Na przykład w powyższym przykładzie są 3 webAddressMapping, które wskazują na witrynę http://sites.google.com/site/myOtherTestSite.

Modyfikowanie mapowań adresów internetowych

Uwaga: podczas pracy z mapowaniami adresów internetowych wszystkie operacje GET/POST/PUT powinny określać parametr with-mappings=true. Jeśli parametr jest nieobecny, webAddressMapping nie będzie zwracany we wpisach witryny (GET) ani brany pod uwagę podczas aktualizowania/usuwania (PUT) mapowań z wpisu.

Aby dodać, zaktualizować lub usunąć mapowanie, wystarczy określić, zmienić lub usunąć taki link podczas tworzenia nowej wersji Witryn lub aktualizowania metadanych witryny. Parametr with-mappings=true musi być uwzględniony w identyfikatorze URI pliku danych witryny. Uwaga: aby zaktualizować mapowanie adresów, musisz być administratorem witryny lub administratorem domeny w przypadku witryny hostowanej w G Suite.

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

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>

Uwaga: mapowania adresów internetowych 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 kartę Aktywność. Każdy wpis na karcie aktywności zawiera informacje o zmianie wprowadzonej w witrynie.

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

https://sites.google.com/feeds/activity/domainName/siteName
Parametr pliku danychOpis
domainName„site” lub domena hostowana w 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 odwołać się do tokena uzyskanego w sekcji Autoryzowanie żądań.

Powrót do góry

Plik danych o zmianach

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

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parametr pliku danychOpis
domainName„site” lub domena hostowana w 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 elementu listy, najpierw pobierz wpis ze źródła treści, używając jego identyfikatora CONTENT_ENTRY_ID. Pobrany wpis będzie zawierać <atom:link> do pliku danych o wersjach. 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 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 odwołać się do tokena uzyskanego w sekcji Autoryzowanie żądań.

Powrót do góry

Źródło treści

Pobieranie 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
domainName„site” lub domena hostowana w G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny, którą znajdziesz w adresie URL witryny (np. myCoolSite).

W wyniku otrzymasz kanał zawierający pierwszą stronę wpisów treści w witrynie. Każdy wpis w pliku danych będzie reprezentować inny typ wpisu treści, np. 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 kanał może wymagać uwierzytelnienia w zależności od uprawnień do udostępniania witryny. Jeśli witryna nie jest publiczna, klient musi wysłać prawidłowy nagłówek Authorization (jak w przykładzie powyżej) i odwołać się do tokena uzyskanego w ramach autoryzacji żądań.

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: to tylko kilka pierwszych wyników. Aby przejrzeć całe źródło treści, kliknij link „next” w źródle:

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

Opis elementów wspólnych dla Atom znajdziesz w dokumentacji protokołu Google Data. Poniżej opisano elementy, które mają określone znaczenie dla interfejsu API klasycznej wersji Witryn. Niektóre wpisy rodzaju będą miały dodatkowe właściwości (niewymienione poniżej), a inne nie. Na przykład wpis listitem może zawierać elementy <gs:field>, a wpis webpage nie.

ElementOpis
<content ...>Tekst wewnętrzny to treść 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 kanał wersji 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, co oznacza, że wpis jest szablonem.
<gd:feedLink>Atrybut href wskazuje elementy podrzędne elementu nadrzędnego wpisu.
<sites:pageName>Nazwa strony w przestrzeni internetowej odpowiadająca nazwie w adresie URL strony.
<sites:revision>Bieżący numer wersji.

Przykłady zapytań dotyczących źródła treści

Możesz przeszukiwać kanał treści, korzystając z niektórych standardowych parametrów zapytania interfejsu Google Data API oraz parametrów specyficznych dla interfejsu API klasycznej wersji Witryn. Więcej informacji i pełną listę obsługiwanych parametrów znajdziesz w przewodniku.

Pobieranie konkretnych rodzajów wpisów

Aby pobrać tylko określony typ wpisu, użyj parametru kind. Ten przykład zwraca tylko webpage wpisy:

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

Aby zwrócić więcej niż 1 typ wpisu, oddziel każdy kind przecinkiem. Ten przykład zwraca wpisy filecabinet i listpage:

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

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

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

Pobieram szablony stron

Ten przykład zwraca tylko template strony:

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

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

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

Pobieranie strony według ścieżki

Jeśli znasz ścieżkę względną strony w Witrynach Google, możesz użyć parametru path, aby pobrać tę konkretną stronę. W tym przykładzie zostanie zwrócona strona znajdująca się pod adresem 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 jej wpisy podrzędne (jeśli istnieją):

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

Uwzględnianie wersji roboczych i 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 wpisy wersji roboczej w źródle treści:

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

Wyszukiwanie pełnotekstowe

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 z szafką na pliki, strony z aktualnościami 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

Ten przykład tworzy nową stronę webpage na najwyższym poziomie witryny, zawiera kod XHTML dla treści strony i ustawia 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 kodem 201 Created i kopią wpisu.

tworzenie elementów lub stron w niestandardowych ścieżkach adresów URL;

Domyślnie poprzedni przykład zostałby utworzony pod adresem URL http://sites.google.com/domainName/siteName/new-webpage-title i miałby nagłówek strony „Nowy tytuł strony internetowej”. Oznacza to, że <atom:title> jest normalizowany do new-webpage-title dla adresu URL. Aby dostosować ścieżkę adresu URL strony, możesz ustawić element <sites:pageName>.

W tym przykładzie tworzony jest nowy element filecabinet z nagłówkiem strony „File Storage”, ale strona jest tworzona 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>

Serwer stosuje następujące reguły pierwszeństwa podczas nazywania ścieżki adresu URL strony:

  1. <sites:pageName>, jeśli jest obecny. Musi spełniać warunek: a-z, A-Z, 0-9, -, _.
  2. <atom:title> nie może mieć wartości null, jeśli nie ma parametru pageName. Normalizacja polega na przycięciu i zwinięciu odstępów do znaku „-” oraz usunięciu znaków, które nie pasują do a-z, A-Z, 0-9, -, _.

Na przykład serwer zaakceptuje nazwę „Custom_Page2”.

Tworzenie podstron

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

W tym przykładzie tworzona jest nowa strona z aktualnościami announcement z nagłówkiem „ogłoszenie” pod nadrzędną stroną z aktualnościami o identyfikatorze wpisu PARENT_ENTRY_ID. Dołączona jest też treść XHTML 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 tworzenie nowych elementów/stron i tworzenie podstron.Różnica polega na dodaniu elementu category z terminem i etykietą ustawionymi odpowiednio na „http://schemas.google.com/g/2005#template” i „template”.

W tym przykładzie tworzony jest 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 tworzenia szablonów stron, możesz utworzyć nową stronę na podstawie szablonu, dodając element <link> z atrybutem rel='http://schemas.google.com/sites/2008#template' wskazującym na link do szablonu strony.

W tym przykładzie tworzona jest nowa strona filecabinet na podstawie istniejącego szablonu strony, który definiuje szafkę na pliki.

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 <category>, nadal musisz go uwzględnić we wpisie. Pamiętaj też, że jeśli dodasz element <content>, serwer go odrzuci.

Przesyłanie plików

Podobnie jak w Witrynach 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 elementu nadrzędnego, wyślij żądanie HTTP POST na adres URL źródła treści:

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. Wartość <atom:entry> powinna odwoływać się do linku do wpisu nadrzędnego, aby określić, gdzie zostanie utworzony załącznik. Więcej informacji znajdziesz w artykule o tworzeniu podstron.

Przesyłam załączniki

Oto przykład przesyłania pliku PDF do magazynu plików o identyfikatorze PARENT_ENTRY_ID. Załącznik zostanie utworzony z tytułem „Plik PDF” i (opcjonalnym) 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ę powiedzie, serwer odpowie kodem 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 specjalny rodzaj załączników. Są to linki do innych plików w internecie, które możesz dodać do listy szafki na pliki. Ta funkcja jest analogiczna do metody przesyłania „Dodaj plik według adresu URL” w interfejsie Witryn Google.

Uwaga: załączniki internetowe można tworzyć tylko w magazynie plików. Nie można ich przesyłać na inne typy stron.

W tym przykładzie tworzony jest element webattachment w szafce na dokumenty o identyfikatorze FILECABINET_ENTRY_ID. Tytuł i (opcjonalny) opis są ustawione odpowiednio na „GoogleLogo” i „nice colors”.

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 szafce na dokumenty użytkownika link wskazujący obraz pod adresem „http://www.google.com/images/logo.gif”.

Powrót do góry



Aktualizowanie treści

Metadane (tytuł, nazwa strony itp.) i treść dowolnej strony można edytować za pomocą jednego żądania PUT wysłanego do linku edit. Treść żądania powinna zawierać wpis Atom opisujący zaktualizowaną stronę. Wyjątkiem od tej reguły jest wpis załącznika, który może służyć tylko do aktualizowania metadanych załącznika. Aby zmienić zawartość załączonego pliku, po prostu dołącz nieprzetworzone dane jako treść żądania PUT do linku edit-media załącznika. Możesz też zaktualizować metadane i zawartość załączonego pliku jednocześnie, używając żądania wieloczęściowego MIME.

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

Jeśli chcesz zaktualizować wpis niezależnie od tego, czy ktoś inny go zaktualizował od czasu jego pobrania, użyj If-Match: * i nie dołączaj tagu ETag. Więcej informacji o tagach ETag znajdziesz w przewodniku po interfejsach Google Data API.

Aktualizowanie metadanych lub treści HTML elementu

Aby zaktualizować metadane lub treść HTML wpisu, wyślij żądanie HTTP PUT do linku edit wpisu.

Poniżej znajdziesz przykład aktualizacji wpisu listpage (reprezentowanego przez identyfikator ENTRY_ID) z tymi zmianami:

  • Tytuł został zmieniony na „Zaktualizowana treść”.
  • Zaktualizowana treść HTML
  • Nagłówek pierwszej kolumny listy zostanie zmieniony na „Właściciel”.
  • Ścieżka adresu 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="Description"/>
    <gs:column index="C" name="Completed"/>
  </gs:data>
  <sites:pageName>newPagePath</sites:pageName>
</entry>

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

Zastępowanie zawartości załącznika

Poniżej znajdziesz przykład zastąpienia zawartości załącznika, ale pozostawienia jego metadanych bez zmian. Ponieważ żądanie zawiera nowe treści, 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 znajdziesz przykład jednoczesnego aktualizowania metadanych i treści załącznika. Nazwa załącznika zostanie zmieniona na „Nowy tytuł”, a jego zawartość zostanie zastąpiona zawartością pliku ZIP. Żądanie zawiera nową treść pliku, więc używany jest link edit-media wpisu załącznika.

Pamiętaj, że dołączenie tagu ETag do metadanych zapewnia również niejawny element If-Match dla treści multimedialnych, ponieważ każda aktualizacja treści multimedialnych powoduje zmianę tagu 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



Usuwanie treści

Aby usunąć element z Witryny Google, najpierw pobierz wpis, a następnie wyślij żądanie DELETE na adres URL edit wpisu. Jest to ten sam adres URL, który jest używany podczas aktualizowania metadanych lub zawartości HTML elementu.

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 odpowiada kodem HTTP 200 OK.

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

Jeśli chcesz usunąć wpis niezależnie od tego, czy ktoś inny go zaktualizował od czasu jego pobrania, użyj If-Match: * i nie dołączaj tagu ETag. (W takim przypadku nie musisz pobierać wpisu przed jego usunięciem).

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

Powrót do góry



Pobieranie załączników

Gdy masz już wpis załącznika, możesz pobrać plik, wysyłając uwierzytelnione żądanie HTTP GET do linku src <content> wpisu. Przykład linku do treści w 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 (list ACL)

Każdy wpis na liście kontroli dostępu reprezentuje rolę dostępu określonego podmiotu, czyli użytkownika, grupy użytkowników, domeny lub domyślnego dostępu (czyli witryny publicznej). Wpisy będą wyświetlane tylko w przypadku podmiotów 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. Dlatego administratorzy domeny nie będą wyświetlani, mimo że mają domyślny dostęp do witryny.

Role

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

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

Zakresy

Element zakresu reprezentuje podmiot, który ma ten poziom dostępu. Istnieje 5 możliwych typów elementu gAcl:scope:

  • user – wartość adresu e-mail, np. „user@gmail.com”.
  • group – adres e-mail grupy dyskusyjnej Google, np. „group@domain.com”.
  • domain – nazwa domeny G Suite, np. „domena.com”.
  • invite – użytkownik, który został zaproszony do witryny, ale nie został jeszcze dodany do listy ACL witryny. (Niedostępne, jeśli określono gdata 1.3 lub starszą wersję).
  • default – istnieje tylko jeden możliwy zakres typu „default”, który nie ma wartości (np. <gAcl:scope type="default">). Ten konkretny zakres kontroluje dostęp, który każdy użytkownik ma domyślnie w witrynie publicznej.

Uwaga: domeny nie mogą mieć wartości gAcl:role ustawionej na dostęp „owner” (właściciel). Mogą mieć tylko dostęp „reader” (czytelnik) lub „writer” (autor).

Informacje o zakresie „invite”.

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

Ta metoda zapraszania umożliwia zapraszanie użytkowników bez konta Google bez wcześniejszej wiedzy o tym, jakiego adresu e-mail chcą używać. Jeśli użytkownicy klikną adres URL zaproszenia z umieszczonym tokenem, mogą zarejestrować się, aby uzyskać dostęp, używając dowolnego adresu e-mail. Ponadto 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 „invite” jest dostępny tylko w gdata w wersji 1.4 lub nowszej. Nie będzie to działać, jeśli wyraźnie określisz wersję 1.3 lub starszą.

Pobieranie kanału ACL

Kanał ACL może służyć do kontrolowania uprawnień do udostępniania witryny i jest dostępny za pomocą tego identyfikatora URI:

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

Warto zauważyć, że każdy wpis w kanale witryny zawiera link do tego kanału:

 <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 kodem 200 OK i kanałem wpisów na liście kontroli dostępu:

<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 kanału ACL, wystarczy wysłać żądanie POST do kanału ACL witryny.

Uwaga: niektóre listy ACL udostępniania mogą być możliwe tylko wtedy, gdy domena jest skonfigurowana tak, aby zezwalać na takie uprawnienia (np. jeśli włączone jest udostępnianie poza domenę w przypadku domen G Suite).

Ten przykład dodaje do witryny nowego współpracownika (autora):

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>

Jeśli wstawianie się powiedzie, zwracany jest kod 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ą zakresu „invite”,

Jeśli dodasz użytkowników, którzy nie mają kont Google, interfejs API zwróci adres URL, który musisz przekazać 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.

Jeśli zaproszenie zostanie wysłane, otrzymasz odpowiedź 201 Created i nowy wpis zawierający adres URL, który musisz 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 pojedynczemu użytkownikowi, możesz udostępnić witrynę grupie dyskusyjnej Google lub domenie G Suite. Wymagane wartości scope są wymienione poniżej.

Udostępnianie na adres 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 przypadku domen G Suite i tylko w przypadku domeny, w której witryna jest hostowana. Na przykład witrynę http://sites.google.com/a/domena1.com/witrynaA można udostępnić w całości tylko domenie domena1.com, a nie domenie domena2.com. Witryny, które nie są hostowane w domenie G Suite (np. http://sites.google.com/site/witrynaB), nie mogą zapraszać domen.

modyfikowanie uprawnień do udostępniania,

Aby zaktualizować wpis ACL, zmodyfikuj go odpowiednio i wyślij żądanie HTTP PUT do linku edit wpisu, który jest po prostu elementem <link> z atrybutem „rel” ustawionym na „edit”. W przypadku poprzedniego przykładu link wygląda tak:

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

Poniższy fragment kodu zmienia rolę użytkownika new_writer@gmail.com na „czytelnik”:

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, wyślij żądanie DELETE do tego samego linku edit, który został użyty w żądaniu 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 odpowie: 200 OK.

Powrót do góry

Tematy specjalne

Ponowne pobieranie pliku danych lub wpisu

Jeśli chcesz pobrać kanał lub wpis, który został już wcześniej pobrany, możesz zwiększyć wydajność, informując serwer, aby wysłał listę lub wpis tylko wtedy, gdy zmieniły się od czasu ostatniego pobrania.

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

Przykład użycia pliku danych witryny:

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

Gdy serwer otrzyma to żądanie, sprawdza, czy żądany element ma taki sam tag ETag jak ten, który został przez Ciebie podany. Jeśli tagi ETag są zgodne, oznacza to, że element nie został zmieniony, a serwer zwraca kod stanu HTTP 304 Not Modified lub kod stanu HTTP 412 Precodition Failed. Oba te kody stanu wskazują, że pobrany już element jest aktualny.

Jeśli tagi ETag nie są zgodne, oznacza to, że element został zmodyfikowany od czasu ostatniego żądania, a serwer zwraca element.

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

Przetwarzanie wsadowe

Żądania zbiorcze umożliwiają klientowi wykonywanie wielu operacji w ramach jednego żądania, zamiast przesyłania każdej operacji osobno.

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

Każda operacja w pliku danych zbiorczych ma element <id>, z wyjątkiem operacji wstawiania. Ten element jest taki sam jak adres URL żądania, którego zwykle używasz podczas aktualizowania, usuwania lub wysyłania zapytania do źródła treści. Jeśli na przykład aktualizujesz zmianę, ustaw <id> na link edit do danego 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 w elemencie <batch:id>, która zostanie zwrócona w odpowiedzi serwera i użyta do wyszukania odpowiedniego wpisu.

Aby utworzyć żądanie zbiorcze, utwórz plik danych zbiorczych 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, wstawić, zaktualizować i usunąć wpis dotyczący strony 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 plik danych będzie zawierać po 1 wpisie wyniku 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