Odbudowana wersja Witryn została udostępniona 22 listopada 2016 r. Interfejs Witryny API nie ma dostępu do witryn utworzonych w tej wersji ani ich nie modyfikuje, ale nadal ma dostęp do witryn klasycznych.

Przewodnik po protokołów

Klasyczny interfejs API Witryn Google umożliwia aplikacjom wyświetlanie, publikowanie i modyfikowanie treści w Witrynie Google. Ponadto aplikacja może poprosić o listę ostatnich działań, pobrać historię zmian oraz przesłać lub pobrać załączniki i pliki.

Odbiorcy

W tym dokumencie założono, że rozumiesz ogólne pojęcia związane z protokołem interfejsów API danych Google.

Ten dokument jest przeznaczony dla programistów, którzy chcą tworzyć aplikacje klienckie, które mogą współpracować z Witrynami Google. Znajdziesz w nim wyjaśnienia dotyczące podstawowych interakcji z interfejsem API danych za pomocą nieprzetworzonego kodu XML/HTTP. Więcej informacji na temat interakcji z interfejsem API znajdziesz w naszych bibliotekach klientów. Możesz zapoznać się z przykładami dotyczącymi języków, które znajdziesz w pozostałych przewodnikach na pasku nawigacyjnym po lewej stronie.

Materiały referencyjne w tym przewodniku znajdziesz w przewodniku.

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 do niepublicznych danych użytkowników wysyłane do interfejsu API Witryn Google muszą być autoryzowane przez 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 API danych Witryn Google w konsoli interfejsu Google API. (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.

Informacje o zakresie OAuth 2.0 w interfejsie API Witryn Google:

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 kierowane do interfejsu API Witryn Google powinno określać wersję 1.4. Aby podać 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ż podać w adresie URL parametr v=1.4 jako parametr zapytania. Jednak w miarę możliwości zalecamy używanie nagłówka HTTP.

Uwaga: biblioteki klienta automatycznie przesyłają odpowiednie nagłówki wersji, więc nie używaj parametru zapytania v=1.4, gdy używasz biblioteki klienta.

Powrót do góry

Kanał witryny

Kanał witryn może służyć do wyświetlania listy Witryn Google, które należą do użytkownika lub do wyświetlania go, a także do zmiany tytułu istniejącej witryny. W przypadku domen G Suite można też tworzyć i kopiować całą witrynę.

Witryny z informacjami

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 kanałuOpis
domainNamesite” lub domena domeny hostowanej w 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 porządku alfabetycznym.

Tworzenie nowych witryn

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

Aby udostępniać nowe witryny, dodaj do kanału witryny protokół HTTP POST, 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 miałby postać http://sites.google.com/a/example.com/witryna-źródłowa/.

Jeśli witryna zostanie utworzona, serwer odpowie 201 Created. Wpis w odpowiedzi będzie zawierał elementy dodane przez serwer, takie jak link do witryny, link do kanału listy kontroli dostępu w witrynie, 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ć tak samo jak podczas tworzenia nowej witryny. W żądaniu Atom żądania POST dodaj jednak <link> z elementem rel='source' wskazującym kanał witryny, którą chcesz skopiować. Każda strona, która została skopiowana, będzie zawierać ten link. Oto przykład duplikowania 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 skopiuje witrynę z adresu http://sites.google.com/a/example.com/witryna-źródłowa/.

Ważne informacje:

  • Kopiować można tylko witryny i szablony należące do uwierzytelnionego użytkownika.
  • Możesz też skopiować szablon witryny. Witryna to szablon, jeśli na stronie ustawień Witryn Google jest zaznaczone ustawienie „Opublikuj tę witrynę jako szablon”.
  • Możesz skopiować witrynę z innej domeny, która oczekuje na pojawienie się 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 we wpisie witryny. Na przykład ten przykład zmienia 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.

Witryny G Suite dla Twojej domeny zawierają metadane kategorii, które przydają się do kategoryzowania witryn w domenie. Aby dodać lub zaktualizować metatagi kategorii, wyślij żądanie HTTP PUT do linku edit w swojej witrynie zawierającego 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>

Ten przykład edytować istniejącą witrynę i dodaje do niej kategorię „Witryna zespołu”.

Możesz też dodać wiele kategorii, dodając tagi <category>. Zobacz pogrubione wiersze poniżej:

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”.

Mapowanie adresu internetowego

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

Pobieranie mapowania adresu internetowego witryny

Aby wyświetlić mapowania adresu internetowego witryny, pobierz wpis lub plik danych 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 atrybutem rel='webAddressMapping'. W tym przykładzie są 3 elementy webAddressMapping, które wskazują witrynę http://sites.google.com/site/myOtherTestSite.

Modyfikowanie mapowania adresów internetowych

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

Aby dodać, zaktualizować lub usunąć mapowanie, po prostu określ, zmień lub usuń link podczas tworzenia nowych witryn lub aktualizowania metadanych witryny. W identyfikatorze URI kanału witryny należy umieścić parametr with-mappings=true. Uwaga: aby zaktualizować mapowania adresów, musisz być administratorem witryny lub administratorem domeny w przypadku witryny hostowanej w G Suite.

W poniższym żądaniu widać mapowanie http://www.mysitemapping.com do http://www.my-new-sitemapping.com i usunięto http://www.mysitemapping2.com, pozostawiając link w postaci:

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>

Mapowanie adresów internetowych można też określić podczas tworzenia lub kopiowania witryny.

Powrót do góry

Obszar aktywności

Możesz pobrać informacje o ostatniej aktywności w witrynie (zmiany), pobierając plik danych aktywności. Każda pozycja w kanale aktywności zawiera informacje o zmianie wprowadzonej w Witrynie.

Aby przesłać zapytanie dotyczące kanału aktywności, wyślij HTTP HTTP GET na adres URL kanału aktywności:

https://sites.google.com/feeds/activity/domainName/siteName
Parametr kanałuOpis
domainNamesite” lub domena domeny hostowanej w G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny widoczna 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: dostęp do tego kanału wymaga współpracy lub właściciela witryny. Klient musi wysłać prawidłowy nagłówek Authorization i odwoływać się do tokena uzyskanego w sekcji Autoryzacja żądań.

Powrót do góry

Plik danych wersji

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

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parametr kanałuOpis
domainNamesite” lub domena domeny hostowanej w G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny widoczna w adresie URL witryny (np. myCoolSite).

Aby znaleźć link do wersji dla danej strony, komentarza, załącznika lub elementu listy, najpierw pobierz wpis z kanału treści, używając jego identyfikatora CONTENT_ENTRY_ID. Pobrany wpis będzie zawierał parametr <atom:link> kanału wersji. 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: dostęp do tego kanału wymaga współpracy lub właściciela witryny. Twój klient musi przesłać prawidłowy nagłówek Authorization i odwoływać się do tokena uzyskanego w sekcji Autoryzacja żądań.

Powrót do góry

Źródło treści

Pobieranie treści

Źródło treści zawiera aktualną treść Witryn. Wyślij uwierzytelnione żądanie GET na ten adres URL:

https://sites.google.com/feeds/content/domainName/siteName
Parametr kanałuOpis
domainNamesite” lub domena domeny hostowanej w G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej Twojej witryny widoczna w adresie URL witryny (np. myCoolSite).

Wynikiem jest kanał zawierający pierwszą stronę z treściami w witrynie. Każdy wpis w kanale reprezentuje inny typ treści, np. webpage, filecabinet, attachment, comment itd. Element <category scheme="http://schemas.google.com/g/2005#kind"> określa typ wpisu. Listę wartości obsługiwanych w kind znajdziesz w przewodniku.

Uwaga: w zależności od uprawnień do udostępniania witryny ten kanał może, ale nie musi, być uwierzytelniony. Jeśli witryna nie jest publiczna, klient musi przesłać prawidłowy nagłówek Authorization (jak pokazano w przykładzie powyżej) i odwoływać się do tokena uzyskanego w sekcji Autoryzacja żą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 przejść do kolejnych stron kanału, kliknij link „Dalej”:

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

Objaśnienia typowych elementów Atom znajdziesz w dokumentacji protokołu danych Google. Poniżej znajdziesz opis elementów, które zawierają określone wartości interfejsu API klasycznej wersji Witryn. Niektóre wpisy rodzaju będą miały dodatkowe właściwości (wymienione 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 pozycji (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 kanał wersji wpisu.
<link rel="http://schemas.google.com/sites/2008#parent" ...>Atrybut href wskazuje nadrzędny wpis.
<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 oznaczający wpis.
<gd:feedLink>Atrybut href wskazuje elementy podrzędne elementu nadrzędnego wpisu.
<sites:pageName>Nazwa strony internetowej jest taka sama jak nazwa w adresie URL strony.
<sites:revision>Aktualny numer wersji.

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

Pliki danych o treści można przeszukiwać przy użyciu niektórych standardowych parametrów zapytania interfejsu API danych Google oraz tych związanych z klasycznym interfejsem API Witryn. Więcej szczegółowych informacji i pełną listę obsługiwanych parametrów znajdziesz w przewodniku.

Pobieranie określonych typów wpisów

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

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

Aby zwrócić więcej niż jeden typ wpisu, oddziel kind znakiem „,”. W tym przykładzie widać wpisy o wartościach filecabinet i listpage:

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

W zapytaniu /-/category Dane Google możesz też użyć standardowego formatu zamiast parametru kind:

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

Pobieram szablony stron

W tym przykładzie widać tylko template strony:

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

Aby wyświetlić wszystkie typy wpisów i uwzględnić strony template, użyj:

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

Pobieranie stron według ścieżki

Jeśli znasz ścieżkę względną strony w Witrynach Google, możesz użyć parametru path do pobrania tej strony. W tym przykładzie strona taka znalazłaby 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 jego wpisy podrzędne (jeśli istnieją):

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

Obejmuje wersje robocze lub usunięte wpisy

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 źródle treści:

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

Przeszukiwanie całego tekstu

Aby przeszukać całą zawartość witryny, użyj parametru q do wyszukania całego tekstu:

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 list, strony magazynów plików, strony z ogłoszeniami itp.) można utworzyć przez wysłanie żądania 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 parametrze kind w przewodniku.

Tworzenie nowych elementów / stron

Ten przykład powoduje utworzenie nowego elementu webpage w ramach najwyższego poziomu witryny, uwzględnienie niektórych elementów XHTML w treści strony i ustawienie tytułu nagłówka na „New WebPage Title” (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 201 Created i kopią wpisu.

Tworzenie elementów/stron pod niestandardowymi ścieżkami adresu URL

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

Ten przykład tworzy nowy obiekt filecabinet z nagłówkiem strony „Miejsce na pliki”, ale tworzy stronę pod adresem URL http://sites.google.com/domainName/siteName/files, określając element <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 używa tych reguł pierwszeństwa do nadawania nazwy ścieżce adresu URL strony:

  1. <sites:pageName>, jeśli występuje. Musi spełniać warunki: a-z, A-Z, 0-9, -, _.
  2. <atom:title> – jeśli wartość parametru pageName nie jest określona, nie może mieć wartości null. Normalizacja to przycięcie + zwinięcie spacji do znaku „-” i usunięcie znaków, które nie pasują do a-z, A-Z, 0-9, -, _.

Na przykład wartość „Niestandardowa_strona2” zostanie zaakceptowana przez serwer.

Tworzenie podstron

Aby utworzyć podstrony (podrzędne) w ramach strony nadrzędnej, umieść <link rel="http://schemas.google.com/sites/2008#parent"> w nowym wpisie Atom. Ustaw atrybut href linku na własny link linku nadrzędnego.

Ten przykład tworzy nowy nagłówek announcement z nagłówkiem „ogłoszenie” pod stroną z powiadomieniem nadrzędnym o identyfikatorze PARENT_ENTRY_ID. Zawartość strony zawiera też treść XHTML:

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 stron jest taki sam jak podczas tworzenia nowych elementów/stron i tworzenia podstron.Różnica polega na dodaniu elementu category z terminem i etykietą ustawioną odpowiednio na „http://schemas.google.com/g/2005#template” i „template”.

Ten przykład tworzy 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 szablonu strony możesz utworzyć nową stronę z szablonu, dodając atrybut <link> z atrybutem rel='http://schemas.google.com/sites/2008#template' wskazujący na własny link szablonu strony.

Ten przykład powoduje utworzenie nowej strony filecabinet na podstawie istniejącego szablonu strony, który definiuje magazyn 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: pomimo tego, że szablon definiujący <category>, ten wymagany jest wciąż w Twoim wpisie, Pamiętaj też, że jeśli dodasz element <content>, serwer go odrzuci.

Przesyłanie plików

Tak jak w przypadku Witryn Google, interfejs API umożliwia przesyłanie załączników do stron 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. W ten sposób połączysz zawartość pliku z obiektem <atom:entry> zawierającym metadane załącznika. Element <atom:entry> powinien odwoływać się do własnego linku do elementu nadrzędnego, aby określić, gdzie zostanie utworzony załącznik. Więcej informacji znajdziesz w artykule Tworzenie 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 wyśle odpowiedź 201 Created i kopię nowo utworzonego załącznika.

Przesyłanie załącznika do folderu

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

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

Załączniki do stron internetowych

Załączniki sieciowe to specjalne rodzaje załączników. Zasadniczo są to linki do innych plików w internecie, które można dodać do informacji o magazynie plików. Ta funkcja działa analogicznie do metody „Dodaj plik według adresu URL” w interfejsie Witryn Google.

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

W tym przykładzie tworzony jest element webattachment pod magazynem plików, do którego odwołuje się identyfikator FILECABINET_ENTRY_ID. Jego tytuł i (opcjonalnie) opis to 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 plików użytkownika link prowadzący do obrazu na stronie „http://www.google.com/images/logo.gif”.

Powrót do góry



Aktualizowanie treści

Metadane (tytuł, nazwa strony itp.) i treść każdej strony można edytować, wysyłając pojedyncze żądanie PUT do linku edit. Treść żądania powinna zawierać pozycję Atom opisującą zaktualizowaną stronę. Wyjątkiem od tej reguły jest wpis załącznika, w którym można go użyć tylko do zaktualizowania metadanych załącznika. Aby zmienić zawartość załączonego pliku, po prostu dołącz nieprzetworzone dane w treści żądania PUT do linku edit-media załącznika. Możesz też zaktualizować metadane i zawartość załączonego pliku jednocześnie za pomocą żądania wieloczęściowego MIME.

Aby zapewnić, że aktualizacja nie zastępuje zmian innego klienta, podaj wartość ETag oryginalnego wpisu. Możesz to zrobić, dodając wartość ETag w nagłówku HTTP If-Match lub dodając atrybut gd:etag oryginalnego wpisu do zaktualizowanego wpisu. Aby określić wartość ETag oryginalnego wpisu, sprawdź atrybut gd:etag elementu <entry>. We wpisach multimediów tag ETag mediów może być dostępny w atrybucie gd:etag linku edit-media.

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

Aktualizowanie metadanych elementu lub treści HTML

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

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

  • Tytuł został zmieniony na „Zaktualizowana treść”
  • Zaktualizowana zawartość HTML
  • Zmieniono nagłówek pierwszego kolumny 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="Decription"/>
    <gs:column index="C" name="Completed"/>
  </gs:data>
  <sites:pageName>newPagePath</sites:pageName>
</entry>

Uwaga: wpis (zwrócony przez serwer) zawiera więcej elementów niż przykład powyżej.

Zastępowanie zawartości załącznika

Poniżej znajdziesz przykład zastępowania zawartości załącznika bez zmieniania metadanych. Żądanie zawiera nową treść, więc użyjemy linku edit-media do wpisu.

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 jednoczesnej aktualizacji metadanych załącznika i jego zawartości. Nazwa załącznika zostanie zmieniona na „Nowy tytuł”, a jej zawartość zostanie zastąpiona zawartością pliku ZIP. Żądanie zawiera nową zawartość pliku, więc użyty jest link edit-media załącznika.

Pamiętaj, że umieszczenie tagu ETag w metadanych powoduje też domyślne szyfrowanie If-Match treści multimedialnych, ponieważ każda zmiana w ich zawartości powoduje zmianę 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 do adresu URL edit tego wpisu. Jest to ten sam adres URL, który jest używany podczas aktualizowania 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 zwraca odpowiedź 200 OK HTTP.

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

Jeśli chcesz usunąć wpis niezależnie od tego, czy od czasu jego pobrania ktoś inny go zaktualizował, użyj tagu If-Match: * bez tagu ETag. W takim przypadku nie musisz pobierać wpisu, zanim go usuniesz.

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

Powrót do góry



Pobieranie załączników

Gdy masz już załącznik, możesz pobrać plik, wysyłając GET uwierzytelnionego HTTP do linku <content> src do 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 (list kontroli dostępu)

Każda pozycja w liście kontroli dostępu ACL reprezentuje rolę dostępu konkretnego podmiotu – użytkownika, grupy użytkowników, domeny lub dostępu domyślnego (czyli witryny publicznej). Wpisy będą wyświetlane tylko w przypadku elementów z jednoznacznym dostępem – jeden wpis dla każdego adresu e-mail będzie widoczny w panelu „Osoby z dostępem” na ekranie udostępniania interfejsu użytkownika Witryn Google. Administratorzy domeny nie będą więc pokazywani, nawet jeśli mają pośredni dostęp do witryny.

Role

Element roli reprezentuje poziom dostępu elementu. Element gAcl:role ma 4 możliwe wartości:

  • Reader – widz (odpowiednik dostępu tylko do odczytu).
  • writer – współpracownik (odpowiednik do odczytu i zapisu).
  • owner – zwykle jest to administrator witryny (odpowiednik do odczytu i zapisu).

Zakresy

Element zakresu reprezentuje jednostkę, która ma ten poziom dostępu. Element gAcl:scope może mieć 5 typów:

  • user – wartość adresu e-mail, np. „użytkownik@gmail.com”.
  • group – adres e-mail grupy dyskusyjnej Google, np. „group@domain.com”.
  • domena – nazwa domeny G Suite, np. „domain.com”;
  • invite – użytkownik, który został zaproszony do witryny, ale nie został jeszcze dodany do listy kontroli dostępu do tej witryny. (Niedostępne w przypadku określenia danych gdata w wersji 1.3 lub starszej)
  • domyślny – tylko jeden możliwy zakres typu „default” nie ma wartości (np.<gAcl:scope type="default">). Ten konkretny zakres kontroluje domyślny dostęp wszystkich użytkowników do witryny publicznej.

Uwaga: domeny nie mogą mieć wartości gAcl:role ustawionej na dostęp „właściciel” – mogą być tylko czytelnikami lub zapisującymi.

Informacje o zakresie „Zaproś”.

Interfejs API zwróci zakres zaproszeń po dodaniu do listy ACL co najmniej jednego użytkownika, który nie ma jeszcze konta Google. Interfejs API zwraca URL z osadzonym tokenem, który musisz przekazać zaproszonym użytkownikom, aby mogli zaakceptować zaproszenie.

Ta metoda zapraszania pozwala zaprosić użytkowników spoza Google, którzy wcześniej nie znają adresu e-mail, z którego chcą korzystać. Użytkownicy mogą zarejestrować się za pomocą dowolnego adresu e-mail, o ile użytkownicy klikną adres URL zaproszenia za pomocą umieszczonego tokena. Co więcej, wielu użytkowników może używać tego adresu URL do zaakceptowania zaproszenia, dzięki czemu może się to przydać, gdy zapraszasz jednego użytkownika lub grupę użytkowników.

Uwaga: zakres „Zaproś” jest dostępny tylko w Gdata w wersji 1.4 lub nowszej. Nie będzie działać, jeśli wyraźnie określisz wersję 1.3 lub starszą.

Odzyskiwanie pliku danych ACL

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

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

Warto pamiętać, że każdy wpis w kanale witryny zawiera link do tego pliku:

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

Aby odzyskać uprawnienia do udostępniania witryny, wyślij GET i HTTP do identyfikatora URI kanału listy kontroli dostępu (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 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

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

Uwaga: niektóre listy kontroli dostępu mogą być dostępne tylko wtedy, gdy domena jest skonfigurowana tak, aby zezwalać na takie uprawnienia (na przykład jeśli udostępnianie poza domenę w G Suite jest włączone).

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

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>

201 Created i nowy wpis są zwracane po udanym wstawieniu:

<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 „Zaproś”;

Jeśli dodasz użytkowników, którzy nie mają kont Google, interfejs API zwróci 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ę przy użyciu istniejącego konta lub tworząc nowe.

Udane zaproszenie zwraca wartość 201 Created i nowy wpis z adresem 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 ją udostępniać w grupie dyskusyjnej Google lub w domenie G Suite. Lista wymaganych wartości scope znajduje się poniżej.

Udostępnianie na adres e-mail grupy:

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

Udostępnianie w 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 domen, w których znajduje się witryna. Na przykład witryna http://sites.google.com/a/domena1.com/witrynaA może udostępniać całą witrynę tylko domenie domena1.com, a nie domeny 2.com. Witryny, które nie są hostowane w domenie G Suite (np. http://sites.google.com/site/siteB), nie mogą zapraszać domen.

Modyfikowanie uprawnień udostępniania

Aby zaktualizować wpis ACL, w razie potrzeby zmodyfikuj wpis i wyślij żądanie HTTP PUT do linku edit wpisu, który jest po prostu elementem <link>, którego atrybut „rel” ma wartość „edit”. W poprzednim przykładzie ten link:

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

Ten 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>

Usuwam uprawnienia do udostępniania

Aby odebrać uprawnienia temu użytkownikowi, wyślij żądanie DELETE na ten sam link edit, który został użyty w przypadku żądania 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 kanału lub wpisu

Jeśli chcesz pobrać pobrany wcześniej plik danych lub wpis, możesz zwiększyć wydajność, wysyłając serwer do listy lub wpisów tylko wtedy, gdy od ostatniego pobrania został zmieniony.

W tym celu musisz pobrać żądanie HTTP GET zawierające nagłówek HTTP If-None-Match. W nagłówku określ tag ETag listy lub wpisu, który znajdziesz w atrybucie gd:etag elementu <feed> lub <entry>.

Przykład użycia kanału witryny:

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

Po otrzymaniu tego żądania serwer sprawdza, czy element, o który prosisz, ma taki sam tag ETag jak określony przez Ciebie tag. Jeśli tagi ETags pasują, element nie został zmieniony, a serwer zwraca kod stanu HTTP 304 Not Modified lub kod stanu HTTP 412 Precodition Failed. Oba kody stanu wskazują, że pobrany element jest aktualny.

Jeśli tagi ETag nie pasują do siebie, 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 API danych Google.

Przetwarzanie wsadowe

Żądania zbiorcze pozwalają klientowi wykonać wiele operacji w jednym żądaniu zamiast przesyłać 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 zbiorcze za pomocą interfejsów Google Data API

Każda operacja w zbiorczym pliku danych 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 zapytania dotyczącego źródła treści. Jeśli na przykład aktualizujesz zmiany, ustaw w elemencie <id> link edit 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 w tagu <batch:id>, która będzie zwracana w odpowiedzi serwera i używana do wyszukiwania odpowiedniego wpisu.

Aby wysłać żądanie zbiorcze, utwórz plik wsadowy i wyślij POST HTTP do linku wsadowego:

<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 wysyłać zapytania do strony internetowej, wstawiać je oraz aktualizować i usuwać:

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