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

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Interfejs Google Sites API umożliwia aplikacjom dostęp do Witryn Google, a także ich publikowanie i modyfikowanie. Dodatkowo aplikacja może poprosić o listę ostatnich działań, pobrać historię zmian oraz przesłać i pobrać załączniki i pliki.

Odbiorcy

W tym dokumencie zakładamy, że rozumiesz ogólne pomysły związane z protokołem interfejsów API danych Google.

Ten dokument jest przeznaczony dla programistów, którzy chcą tworzyć aplikacje klienckie obsługujące interakcje z Witrynami Google. Znajdziesz w nim serię przykładowych podstawowych interakcji z interfejsem API danych z użyciem nieprzetworzonego kodu XML/HTTP wraz z wyjaśnieniami. Po przeczytaniu tego dokumentu możesz dowiedzieć się więcej o interakcji z interfejsem API za pomocą naszych bibliotek klienckich. Przykłady dotyczące poszczególnych języków znajdziesz w innych przewodnikach na pasku nawigacyjnym po lewej stronie.

Szczegółowe informacje o tym materiale znajdziesz w przewodniku.

Autoryzowanie zapytań

Gdy aplikacja żąda niepublicznych danych użytkowników, 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. Nie są obsługiwane żadne inne protokoły. Jeśli aplikacja używa funkcji Zaloguj się przez Google, możesz załatwiać niektóre aspekty autoryzacji.

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 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 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 interfejsu 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, które dotyczy interfejsu Data Data API, powinno określać wersję 1.4. Numer wersji możesz podać w nagłówku 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 tam, gdzie to możliwe, zalecamy używanie nagłówka HTTP.

Uwaga: gdy klient korzysta z biblioteki klienta, biblioteki klienta automatycznie udostępniają odpowiednie nagłówki wersji, więc nie używaj parametru zapytania v=1.4.

Powrót do góry

Kanał witryny

Plik danych o witrynach może służyć do wyświetlania listy Witryn Google należących do użytkownika, w przypadku których ma uprawnienia do wyświetlania, oraz do zmiany nazwy istniejącej witryny. W przypadku domen G Suite można też używać ich do tworzenia lub kopiowania całej witryny.

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
domainName'site&#39 lub domenę hostowanej domeny G Suite (np. example.com).

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

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

HTTP/1.1 200 OK

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

Witryny są wymienione w kolejności alfabetycznej.

Tworzenie nowych witryn

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

Aby udostępniać witryny w nowym formacie, określ w pliku danych HTTP protokół 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 to http://sites.google.com/a/example.com/witryna-źródła/.

Jeśli witryna zostanie utworzona, serwer odpowie 201 Created. Wpis odpowiedzi 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ąca witryna może zostać zduplikowana w taki sam sposób jak tworzenie nowej witryny. Jednak w żądaniu Atom tagu POST dodaj <link> z elementem rel='source' wskazującym kanał witryny do skopiowania. Każda skopiowana witryna 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 spowoduje skopiowanie witryny pod adresem http://sites.google.com/a/example.com/witryna-źródła/.

Ważne uwagi:

  • 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 jest zaznaczone ustawienie &Opublikuj tę witrynę jako szablon.
  • Możesz skopiować witrynę z innej domeny, jeśli znajduje się ona na liście właścicieli witryny źródłowej.

Aktualizowanie metadanych witryny

Aby zaktualizować tytuł lub podsumowanie witryny, wyślij link HTTP PUT do linku do witryny edit. Na przykład w poniższym przykładzie poprzedni tytuł witryny zmieni się na New Test Site2, a jej opis na Newer description.

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

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

Dodawanie kategorii

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

G Suite dla Twoich domen zawiera dane meta kategorii, które pomagają kategoryzować witryny w domenie. Aby dodać lub zaktualizować metatagi kategorii, wyślij link HTTP PUT do wpisu edit w witrynie, który zawiera tag category. Zobacz pogrubiony wiersz poniżej:

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 zmienia istniejącą witrynę i dodaje do niej kategorię „Witryna zespołu”.

Możesz też dodać wiele kategorii, dodając kolejne tagi <category>. Zapoznaj się z pogrubionymi wierszami z poniższego przykładu:

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 adresów internetowych

Dzięki mapowaniu adresów internetowych użytkownicy Witryn mogą zmapować własne domeny na Witryny Google. Na przykład zamiast http://sites.google.com/a/domain.com/mysite możesz użyć właściwości http://www.mydomainsite.com. W zależności od miejsca hostowania witryny możesz ręcznie zmodyfikować mapowanie adresu internetowego witryny. Więcej informacji znajdziesz w Centrum pomocy.

Pobieranie mapowania adresów internetowych witryn

Aby przywrócić mapowanie adresu internetowego 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 atrybutem rel='webAddressMapping'. W przykładzie powyżej mamy 3 elementy webAddressMapping wskazujące stronę 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 tego parametru, wartości webAddressMapping nie są zwracane w pozycjach witryny (GET) ani brane pod uwagę podczas aktualizowania lub usuwania mapowania (PUT) z wpisu.

Aby dodać, zaktualizować lub usunąć mapowanie, wystarczy określić, zmienić lub usunąć ten link podczas tworzenia nowych witryn lub aktualizowania metadanych witryny. W identyfikatorze URI kanału witryny musi być zawarty parametr with-mappings=true. Uwaga: aby zaktualizować mapowanie adresów, musisz być administratorem witryny lub administratorem domeny w przypadku witryny hostowanej w G Suite.

Na przykład poniższe żądanie aktualizuje mapowanie http://www.mysitemapping.com na http://www.my-new-sitemapping.com i usuwa właściwość http://www.mysitemapping2.com, pozostawiając link w pozycji:

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: 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ć ostatnią aktywność (zmiany), by pobrać kanał aktywności. Każdy wpis w kanale aktywności zawiera informacje o zmianie wprowadzonej w witrynie.

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

https://sites.google.com/feeds/activity/domainName/siteName
Parametr kanałuOpis
domainName'site&#39 lub domenę hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej w Twoim 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ć właścicielem lub współpracownikiem. Klient musi wysłać prawidłowy nagłówek Authorization i odwoływać się do tokena uzyskanego w polu Autoryzowanie żądań.

Powrót do góry

Kanał wersji

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

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parametr kanałuOpis
domainName'site&#39 lub domenę hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej w Twoim adresie URL witryny (np. myCoolSite).

Aby znaleźć link do wersji dla danej strony, komentarza, załącznika lub listy, najpierw pobierz wpis z kanału treści, używając jego identyfikatora CONTENT_ENTRY_ID. Pobrany wpis będzie zawierał element <atom:link> dotyczący 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: aby uzyskać dostęp do tego kanału, musisz być właścicielem lub współpracownikiem. Twój klient musi wysłać prawidłowy nagłówek Authorization i odwoływać się do tokena uzyskanego w polu Autoryzowanie żądań.

Powrót do góry

Źródło treści

Pobieram treści

Plik danych 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 kanałuOpis
domainName'site&#39 lub domenę hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej w Twoim adresie URL witryny (np. myCoolSite).

W rezultacie znajduje się kanał zawierający pierwszą stronę z treściami w witrynie. Każdy wpis w pliku danych będzie reprezentować 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 pomocy znajdziesz w przewodniku.kind

Uwaga: w zależności od uprawnień do udostępniania w tym kanale może być wymagane uwierzytelnianie. Jeśli witryna jest niepubliczna, klient musi wysłać prawidłowy nagłówek Authorization (jak pokazano w przykładzie powyżej) i dodać się do tokena uzyskanego w artykule Autoryzowanie żą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 przeglądać całą zawartość, użyj tego linku:

<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 informacje o elementach, które zawierają konkretny pomiar interfejsu API 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 kanał wersji wpisu.
<link rel="http://schemas.google.com/sites/2008#parent" ...>Atrybut href wskazuje wpis nadrzędny.
<link rel="http://schemas.google.com/sites/2008#template" ...>Atrybut href wskazuje stronę szablonu wpisu.
<category scheme="http://schemas.google.com/g/2005#kind" ...>label to typ wpisu.
<category term="http://schemas.google.com/g/2005#template" ...>label=template oznacza, że wpis jest szablonem.
<gd:feedLink>Atrybut href wskazuje elementy podrzędne wpisu.
<sites:pageName>Nazwa strony internetowej odpowiadająca nazwie w adresie URL.
<sites:revision>Numer bieżącej wersji.

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

Plik danych o treściach możesz wyszukiwać, korzystając z niektórych standardowych parametrów zapytania pochodzących z interfejsu Google Data API, a także parametrów związanych z interfejsem Groups API. Więcej szczegółowych informacji i pełną listę obsługiwanych parametrów znajdziesz w przewodniku.

Pobieram określone typy 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 poszczególne pozycje kind znakami ',' w tym przykładzie zwracane są wpisy filecabinet i listpage:

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

Zamiast parametru kind możesz też użyć standardowego formatu zapytania /-/category dotyczącego danych Google:

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ć strony template, użyj:

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

Pobieranie strony według ścieżki

Jeśli znasz ścieżkę względną strony w Witrynach Google, możesz użyć parametru path, aby ją pobrać. W tym przykładzie wyświetlana byłaby 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 strony, możesz użyć parametru parent, aby pobrać wszystkie wpisy podrzędne (jeśli istnieją):

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

Obejmuje wersje robocze i 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 pliku danych:

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, listy stron, magazyny plików, strony z ogłoszeniami itp.) można utworzyć, wysyłając protokół HTTP POST do pliku 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 tworzy nowy element webpage w hierarchii najwyższego poziomu witryny, zawiera część XHTML w przypadku treści strony i ustawia nagłówek nagłówka na „#Web9 Title”'

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ę uda, serwer wyśle odpowiedź 201 Created i kopię wpisu.

Tworzenie elementów lub stron w ramach niestandardowych ścieżek adresów 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 wartość <atom:title> jest znormalizowana do new-webpage-title. Aby dostosować ścieżkę adresu URL strony, możesz ustawić element <sites:pageName>.

Ten przykładowy kod tworzy nowy nagłówek filecabinet z nagłówkiem ' Storage File' 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 następujących reguł pierwszeństwa do nazewnictwa ścieżki adresu URL strony:

  1. <sites:pageName>, jeśli występuje Musi spełniać warunek a-z, A-Z, 0-9, -, _.
  2. <atom:title> – nie może zawierać wartości null, jeśli parametr pageName nie jest podany. Normalizacja polega na przycinaniu i zwijaniu odstępów na znaki '-&#39 oraz usuwaniu znaków niepasujących do ciągu a-z, A-Z, 0-9, -, _.

Na przykład ciąg 'niestandardowa_strona2&#39 zostanie zaakceptowany przez serwer.

Tworzenie podstron

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

Ten przykładowy kod tworzy nowy element announcement z nagłówkiem ' ogłoszeniem' na stronie ogłoszenia nadrzędnego z identyfikatorem PARENT_ENTRY_ID. Zawiera też treść XHTML w postaci treści 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 wygląda tak samo jak tworzenie nowych elementów/stron i tworzenie stron podrzędnych. Różnica polega na tym, że dodaje się właściwość category, a hasło i etykieta są ustawione odpowiednio na 'http://schemas.google.com/g/2005#template' i ##99;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 szablonów stron, aby utworzyć nową stronę z szablonu, dodaj atrybut <link> z atrybutem rel='http://schemas.google.com/sites/2008#template' wskazujący link do własnego linku do szablonu strony.

Ten przykładowy kod tworzy nową stronę filecabinet na podstawie istniejącego szablonu strony, która 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: mimo że szablon definiujący właściwość <category>, wymagany jest szablon w Twoim wpisie. Pamiętaj, że jeśli dodasz element <content>, serwer go odrzuci.

Przesyłanie plików

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

Aby przesłać załącznik do 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. Element <atom:entry> powinien odwoływać się do wpisu nadrzędnego, który określa, gdzie zostanie utworzony załącznik. Więcej informacji znajdziesz w artykule Tworzenie subkont.

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 (opcjonalnie) opisem oraz pakietu HR&#39.

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 usłudze filecabinet, dołącz kategorię z atrybutem 'term' ustawionym na nazwę folderu:

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

Załączniki do stron internetowych

Załączniki internetowe to specjalne typy załączników. Zasadniczo zawierają one linki do innych plików w internecie, które możesz dodać do spisu plików. Ta funkcja działa podobnie jak w przypadku opcji „Dodaj plik według adresu URL” i „Prześlij” 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 tworzymy element webattachment pod magazynem plików, do którego odwołuje się identyfikator FILECABINET_ENTRY_ID. Jego tytuł i (opcjonalnie) opis to odpowiednio 'GoogleLogo&#39 oraz 'atrakcyjne 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 panelu 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ł, nazwę strony itd.) i zawartość strony mogą być edytowane w ramach jednego żądania PUT w linku edit. Treść żądania powinna zawierać wpis Atom ze zaktualizowaną stroną. Wyjątkiem od tej reguły jest wpis w załączniku, którego można użyć tylko do zaktualizowania metadanych załącznika. Aby zmienić treść załączonego pliku, dołącz nieprzetworzone dane jako treść żądania PUT do linku edit-media w załączniku. Możesz też zaktualizować zarówno metadane, jak i zawartość dołączonego pliku za pomocą żądania wieloczęściowego MIME.

Dla potwierdzenia aktualizacji nie zastępujemy zmian innego klienta ani wartości pierwotnej tagu ETag. W tym celu podaj wartość ETag w nagłówku HTTP If-Match lub dołącz pierwotny atrybut gd:etag w zaktualizowanym wpisie. Aby określić pierwotną wartość tagu eTag elementu E, 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 zaktualizował go od momentu pobrania, użyj If-Match: * i nie stosuj 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 pozycji lub treść HTML, wyślij link HTTP PUT do linku edit wpisu.

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

  • Tytuł został zmieniony na „#39;Zaktualizowana treść”;
  • Zaktualizowane treści HTML
  • Pierwszy nagłówek kolumny został zmieniony na „#39;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) będzie zawierał więcej elementów niż w przykładzie powyżej.

Zastępowanie załącznika

Poniżej znajdziesz przykład zastępowania zawartości załącznika bez wprowadzania jego metadanych. Żądanie zawiera nową treść, więc użyty jest wpis w załączniku edit-media.

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 załącznika + treści

Poniżej znajdziesz przykład aktualizowania metadanych i załączników w tym samym czasie. Nazwa załącznika zostanie zmieniona na 'Nowy tytuł&#39, a jej zawartość zostanie zastąpiona zawartością pliku ZIP. Żądanie zawiera nową treść pliku, więc używany jest link załącznika edit-media.

Pamiętaj, że umieszczenie tagu ETag w metadanych powoduje niejawną If-Match obsługę treści multimedialnych, ponieważ każda aktualizacja treści multimedialnych powoduje zmianę metadanych ETag.

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 elementu edit. Jest to ten sam adres URL 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 odpowiada HTTP 200 OK.

Aby 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 pierwotną wartość tagu ETag. Wartość pierwotnego tagu ETag 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 stosuj tagu ETag. W tym przypadku przed usunięciem wpisu nie trzeba go pobierać.

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 uwierzytelniony protokół HTTP GET do linku src <content> w wpisie. Przykładowy link do treści w formacie 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 na 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ą widoczne tylko dla podmiotów, które mają jawny dostęp, i będą widoczne po jednym adresie e-mail w panelu „Osoby z dostępem” na ekranie udostępniania w interfejsie Witryn Google. Dlatego administratorzy domeny nie będą pokazywani, mimo że mają bezpośredni dostęp do witryny.

Role

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

  • reader – widz (odpowiednik dostępu tylko do odczytu).
  • writer – współpracownik (odpowiedni do uprawnień do zapisu i odczytu);
  • owner – zwykle administrator witryny (odpowiednik uprawnień do zapisu i odczytu).

Zakresy

Element zakresu reprezentuje jednostkę, która ma ten poziom dostępu. Jest 5 możliwych typów elementu gAcl:scope:

  • użytkownik – wartość adresu e-mail, np. "użytkownik@gmail.com"
  • group – adres e-mail grupy Google, np. "grupa@domena.com"
  • domena – nazwa domeny G Suite, np. "domain.com"
  • zaproś – użytkownik został zaproszony do witryny, ale nie został jeszcze dodany do listy kontroli dostępu tej witryny. (opcja niedostępna, jeśli określona jest wersja gdata 1.3 lub wcześniejsza).
  • Domyślny – tylko 1 możliwy zakres typu „"default"”, który nie ma wartości (np. <gAcl:scope type="default">), jest ograniczony tylko do tego użytkownika, który domyślnie jest dostępny w witrynie publicznej.

Uwaga: domeny nie mogą mieć dostępu typu gAcl:role "owner" dostęp, ale mogą być tylko czytelnikami lub autorami.

Informacje o zakresie &zaproszenia.

Interfejs API zwraca zakres zaproszeń, gdy dodasz co najmniej jednego użytkownika do listy kontroli dostępu, która nie ma jeszcze konta Google. Interfejs API zwraca URL z osadzonym tokenem, który musisz udostępnić zaproszonym użytkownikom, aby mogli oni zaakceptować zaproszenie.

Dzięki temu możesz zapraszać użytkowników spoza Google, nie wiedząc przy tym, jakiego adresu e-mail chcą użyć. Jeśli użytkownik kliknie URL zaproszenia z umieszczonym tokenem, będzie mógł zarejestrować się za pomocą dowolnego adresu e-mail. Dodatkowo wielu użytkowników może go użyć do zaakceptowania zaproszenia, więc może to być przydatne, gdy zapraszasz jednego użytkownika lub grupę użytkowników.

Uwaga: zakres „"zapro"” jest dostępny tylko w programie gdata w wersji 1.4 lub nowszej. Ta opcja nie będzie działać, jeśli 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 kanałuOpis
domainName'site&#39 lub domenę hostowanej domeny G Suite (np. example.com).
siteNameNazwa przestrzeni internetowej w Twoim adresie URL witryny (np. myCoolSite).

Warto pamiętać, ż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 i podaj 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 wyśle odpowiedź 200 OK i kanał z wpisami 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 kanału ACL, wystarczy wysłać żądanie POST do kanału ACL witryny.

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

Ten przykład dodaje nowego współpracownika (autora) 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 w przypadku udanego wstawiania:

<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 &zaproszenia

Jeśli dodasz użytkowników, którzy nie mają kont Google, interfejs API zwróci adres URL wymagany do zaproszenia tych użytkowników. Po kliknięciu adresu URL użytkownik może uzyskać dostęp do witryny, logując się na istniejące konto lub tworząc nowe.

Udane zaproszenie zwraca 201 Created i nowy wpis zawierający 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 jednemu użytkownikowi, możesz udostępnić witrynę we wszystkich grupach Google lub w domenie G Suite. Wymagane wartości scope są wymienione poniżej.

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

Modyfikowanie uprawnień do udostępniania

Aby zaktualizować wpis na liście kontroli dostępu, w razie potrzeby wprowadź w nim zmiany i wyślij żądanie HTTP PUT do linku edit z wpisem, który jest po prostu elementem <link>, którego atrybut jest określony jako 'edit'. W poprzednim przykładzie ten link jest:

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

Fragment kodu poniżej 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 do tego samego linku 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 lub wpis, możesz poprawić wydajność, nakazując serwerowi wysłanie listy lub wpisu tylko wtedy, gdy od czasu ostatniego pobrania się zmieniła.

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

Przykład użycia kanału witryny:

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

Gdy serwer otrzymuje to żądanie, sprawdza, czy element, o który prosisz, ma taki sam tag ETag jak ten określony przez Ciebie tag. Jeśli tagi ETag pasują do siebie, element nie uległ zmianie, a serwer zwraca kod stanu HTTP 304 Not Modified lub HTTP 412 Precodition Failed. Oba kody stanu wskazują, że pobrany wcześniej element jest aktualny.

Jeśli tagi Etag nie są zgodne, 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 wykonywać wiele operacji w jednym żądaniu, zamiast przesyłać każdą z nich oddzielnie.

Serwer wykonuje jak najwięcej żądanych zmian i zwraca informacje o stanie, które można wykorzystać do oceny powodzenia lub niepowodzenia każdej operacji. Więcej informacji o przetwarzaniu wsadowym w interfejsie API danych Google znajdziesz w tym artykule.

Każda operacja w pliku danych wsadowych zawiera element <id> z wyjątkiem operacji wstawiania. Ten element jest taki sam jak URL żądania, który zwykle jest używany podczas aktualizowania, usuwania lub wysyłania zapytań dotyczących źródła treści. Jeśli na przykład aktualizujesz zmianę, dla parametru <id> podaj link edit odpowiedniego wpisu. Służy do identyfikowania pozycji docelowej. Nowe wpisy nie zawierają elementów <id>, ponieważ nie zostały one jeszcze utworzone. Zamiast tego możesz zdefiniować wartość ciągu w <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 link 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"/>

Przykład poniżej pokazuje, jak wykonać zapytanie, wstawić, zaktualizować i usunąć wpis 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ł jeden wpis 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