Przewodnik po protokołów

Klasyczny interfejs API Witryn Google umożliwia aplikacjom uzyskiwanie dostępu do treści w Witrynach Google oraz publikowanie i modyfikowanie jej zawartości. Dodatkowo aplikacja może prosić o listę ostatnich działań, pobierać historię wersji oraz przesyłać i pobierać załączniki oraz pliki.

Odbiorcy

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

Ten dokument jest przeznaczony dla programistów, którzy chcą pisać aplikacje klienckie obsługujące Witryny Google. Przedstawia serię przykładów podstawowych interakcji interfejsu API danych z użyciem nieprzetworzonego kodu XML/HTTP wraz z objaśnieniami. Po przeczytaniu tego dokumentu więcej o korzystaniu z interfejsu API za pomocą naszych bibliotek klienta znajdziesz w przykłady w poszczególnych językach, które znajdziesz w pozostałych przewodnikach na pasku nawigacyjnym po lewej stronie.

Więcej materiałów zawartych 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 wysyłane do interfejsu API danych Witryn Google dotyczące niepublicznych danych użytkownika muszą być autoryzowane przez uwierzytelnionego użytkownika.

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

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

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

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

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

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

Powrót do góry

Określanie wersji

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

GData-Version: 1.4

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

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

Powrót do góry

Kanał witryny

Kanał witryn może służyć do tworzenia listy witryn Google, które należą do użytkownika lub do których mają uprawnienia do wyświetlania. a także zmienić tytuł istniejącej witryny. W przypadku domen G Suite można też za jej pomocą utworzyć lub skopiować całą witrynę.

Witryny z ofertami

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

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

Odpowiedź będzie zawierać kanał z listą witryn:

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

HTTP/1.1 200 OK

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

Witryny są wymienione w kolejności alfabetycznej.

Tworzenie nowych witryn

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

Możesz udostępnić nowe witryny, przesyłając do kanału witryny żądanie 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 polem w domenie G Suite example.com. Adres URL witryny będzie miał postać http://sites.google.com/a/example.com/witryna-źródłowa/.

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

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

Kopiowanie witryny

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

Istniejącą witrynę można zduplikować w taki sam sposób jak tworząc nową. Jednak we wpisie Atom żądania POST zawierają tag <link> z atrybutem rel='source' wskazujący kanał witryny, którą chcesz skopiować. Każda witryna, która zawiera 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łowa/.

Ważne informacje:

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

Aktualizowanie metadanych witryny

Aby zaktualizować tytuł lub podsumowanie witryny, wyślij żądanie HTTP PUT do linku edit wpisu witryny. W poniższym przykładzie tytuł poprzedniej witryny zostanie zaktualizowany do tytułu New Test Site2 i jej opis do: Newer description.

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

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

Dodawanie kategorii

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

G Suite w Twojej domenie zawiera metadane kategorii, które ułatwiają kategoryzowanie witryn w domenie. Aby dodać lub zaktualizować metadane kategorii, wyślij żądanie HTTP PUT do linku edit w Twojej witrynie zawierającego tag category. 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 edytuje istniejącą witrynę i dodaje kategorię „Witryna zespołu”.

Możesz też dodać wiele kategorii, dodając kolejne tagi <category>. Zapoznaj się z pogrubionymi liniami w tym przykładzie:

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

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

W tym przykładzie dodano 2 kategorie: „Witryna zespołu” i „Dział prawny”,

Mapowania adresów internetowych

Mapowania adresów internetowych pozwalają użytkownikom Witryn mapować własne domeny na Witryny Google. Na przykład: http://www.mydomainsite.com zamiast http://sites.google.com/a/domain.com/mysite. W zależności od miejsca hostowania witryny możesz ręcznie modyfikować mapowania adresów internetowych witryny. Więcej informacji znajdziesz w Centrum pomocy.

Pobieranie mapowań adresów internetowych witryny

Aby zwrócić mapowanie adresu internetowego witryny, pobierz wpis lub 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 parametrem rel='webAddressMapping'. W przykładzie powyżej są 3 komponenty webAddressMapping, które wskazują tę witrynę http://sites.google.com/site/myOtherTestSite

Modyfikowanie mapowania adresów internetowych

Uwaga: wszystkie operacje GET/POST/PUT powinny mieć określony parametr with-mappings=true. za pomocą mapowania adresów internetowych. Jeśli parametr nie ma wartości, parametry webAddressMapping nie są zwracane we wpisach witryny (GET) ani nie są uwzględniane podczas aktualizowania/usuwania mapowań (PUT) z wpisu.

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

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

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

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

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

Powrót do góry

Obszar aktywności

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

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

https://sites.google.com/feeds/activity/domainName/siteName
Parametr pliku danychOpis
domainNamesite” lub domena Twojej domeny hostowanej w G Suite (np. example.com).
siteNamenazwa przestrzeni internetowej Twojej witryny; znalezione w adresie URL witryny (np. myCoolSite).

Przykładowe żądanie i odpowiedź:

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

HTTP/1.1 200 OK

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

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

Powrót do góry

Kanał wersji

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

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parametr pliku danychOpis
domainNamesite” lub domena Twojej domeny hostowanej w G Suite (np. example.com).
siteNamenazwa przestrzeni internetowej Twojej witryny; znalezione w adresie URL witryny (np. myCoolSite).

Aby znaleźć link do wersji dla danej strony/komentarza/załącznika/elementu listy, najpierw pobierz wpis z źródła treści za pomocą jego identyfikatora CONTENT_ENTRY_ID. Pobrany wpis będzie zawierał do pliku danych wersji tag <atom:link>. Na przykład:

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

Przykładowe żądanie i odpowiedź:

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

HTTP/1.1 200 OK

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

Uwaga: aby uzyskać dostęp do tego kanału, musisz być współpracownikiem lub właścicielem witryny. Twój klient musi wysłać prawidłowy nagłówek Authorization i wskazać uzyskany token w sekcji Autoryzacja żądań.

Powrót do góry

Źródło treści

Pobieram treści

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

https://sites.google.com/feeds/content/domainName/siteName
Parametr pliku danychOpis
domainNamesite” lub domena Twojej domeny hostowanej w G Suite (np. example.com).
siteNamenazwa przestrzeni internetowej Twojej witryny; znalezione w adresie URL witryny (np. myCoolSite).

W wyniku powstaje kanał zawierający pierwszą stronę wpisów z treścią w witrynie. Każdy wpis w kanale reprezentuje inny typ wpisu treści, takich jak webpage, filecabinet, attachment, comment itp. Element <category scheme="http://schemas.google.com/g/2005#kind"> określa typ wpisu. Zapoznaj się z przewodnikiem .kind

Uwaga: ten plik danych może wymagać uwierzytelnienia, ale nie musi. w zależności od uprawnień do udostępniania w witrynie. Jeśli witryna nie jest publiczna, klient musi wysłać prawidłowy nagłówek Authorization (jak 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 przejrzeć cały plik danych, zastosuj „Dalej” w pliku danych link:

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

Omówienie elementów typowych dla platformy Atom znajdziesz w dokumentacji protokołu Google Data Protocol. Elementy z określonym wskaźnikiem w klasycznym interfejsie Sites API zostały opisane poniżej. Określone wpisy mają dodatkowe właściwości (niewymienionych poniżej), podczas gdy inni nie zrobią tego. Na przykład wpis listitem może zawierać elementy <gs:field>, a 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 plik danych wersji wpisu.
<link rel="http://schemas.google.com/sites/2008#parent" ...>Atrybut href wskazuje wpis nadrzędny wpisu.
<link rel="http://schemas.google.com/sites/2008#template" ...>Atrybut href wskazuje stronę szablonu wpisu.
<category scheme="http://schemas.google.com/g/2005#kind" ...>Typ wpisu to label.
<category term="http://schemas.google.com/g/2005#template" ...>Element label=template oznaczający wpis jest szablonem.
<gd:feedLink>Atrybut href wskazuje elementy podrzędne elementu nadrzędnego pozycji.
<sites:pageName>nazwa przestrzeni internetowej strony; odpowiadająca nazwie w adresie URL strony.
<sites:revision>Aktualny numer wersji.

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

Źródło treści możesz przeszukiwać, korzystając ze standardowych parametrów zapytania w interfejsie Google Data API. i tych związanych z interfejsem klasycznej wersji Witryn. Szczegółowe informacje i pełną listę obsługiwanych parametrów znajdziesz tutaj: Przewodnik informacyjny

Pobieranie określonych rodzajów wpisów

Aby pobrać tylko konkretny 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ż 1 typ wpisu, oddziel każdą część kind znakiem „,”. Ten przykład zwraca filecabinet i listpage wpisów:

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

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

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

Pobieram szablony stron

Ten przykład zwraca tylko tyle stron: template:

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 względną ścieżkę strony w Witrynach Google, możesz użyć parametru path, by ją pobrać. Ten przykład zwróci stronę znajdującą 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 ze strony nadrzędnej

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

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

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

Aby uwzględnić pozycje w wersji roboczej lub usunięte, użyj odpowiednio parametru include-drafts lub include-deleted. Ten przykład obejmuje wersje robocze wpisów w źródle treści:

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

Wyszukiwanie całego tekstu

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

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

Powrót do góry



Tworzenie treści

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

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

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

Tworzenie nowych elementów / stron

W tym przykładzie tworzony jest nowy webpage w sekcji najwyższego poziomu witryny, który zawiera fragment XHTML dla treści strony i ustawia tytuł nagłówka na „Tytuł nowej 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ę uda, serwer w odpowiedzi przesyła żądanie 201 Created i kopię wpisu.

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

Domyślnie poprzedni przykład jest tworzony pod adresem URL. http://sites.google.com/domainName/siteName/new-webpage-title i mają nagłówek „Tytuł nowej strony internetowej”. Oznacza to, że w przypadku adresu URL <atom:title> jest znormalizowany do new-webpage-title. Aby dostosować ścieżkę adresu URL strony, możesz ustawić element <sites:pageName>.

W tym przykładzie tworzymy nowy obiekt filecabinet z nagłówkiem strony „Miejsce na pliki”, ale tworzy się stronę dla adresu URL http://sites.google.com/domainName/siteName/files przez użytkownika określający 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 przy nazywaniu ścieżki adresu URL strony:

  1. <sites:pageName> (jeśli występuje). Wymagana jest wartość w polu a-z, A-Z, 0-9, -, _.
  2. <atom:title>, jeśli parametr pageName nie jest podany, nie może mieć wartości null. Normalizacja polega na przycięciu i zwijaniu odstępów do znaku „-” oraz usuń znaki, które nie pasują do a-z, A-Z, 0-9, -, _.

Na przykład „Strona_własna2” będzie akceptowana przez serwer.

Tworzenie podstron

Aby utworzyć podstrony (podrzędne) na stronie nadrzędnej, umieść w kolumnie <link rel="http://schemas.google.com/sites/2008#parent"> element nowy wpis Atom. Ustaw atrybut href linku na link do wpisu nadrzędnego.

W tym przykładzie tworzymy nowy element announcement z nagłówkiem „ogłoszenie” pod nadrzędnym tagiem strony z wpisem Identyfikator: PARENT_ENTRY_ID. Uwzględniana jest też treść XHTML dla 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 jest taki sam jak tworzenie nowych elementów lub stron i tworzenie podstron. Różnica polega na dodaniu elementu category z hasłem i etykietą „http://schemas.google.com/g/2005#template”. i „szablon”.

W tym przykładzie tworzymy nowy szablon webpage.

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

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

Tworzenie stron na podstawie szablonu

Podobnie jak w przypadku szablonów stron, możesz utworzyć nową instancję na podstawie szablonu, dodając atrybut <link> z atrybutem rel='http://schemas.google.com/sites/2008#template' wskazywanie do linku do siebie w szablonie strony.

W tym przykładzie tworzymy nową stronę 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 szablonu, który określa atrybut <category>, w którym znajduje się nadal jest wymagany. Pamiętaj też, że jeśli dodasz element <content>, serwer go odrzuci.

Przesyłanie plików

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

Aby przesłać załącznik do elementu nadrzędnego, wyślij żądanie HTTP POST na adres URL pliku danych:

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

Treść pliku POST powinna być wieloczęściowym żądaniem MIME, aby można było połączyć zawartość pliku z element <atom:entry> zawierający metadane załącznika. Element <atom:entry> powinien odnosić się do do wpisu nadrzędnego, aby określić miejsce utworzenia załącznika. Więcej informacji znajdziesz w artykule Tworzenie podstron.

Przesyłam załączniki

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

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

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

--END_OF_PART
Content-Type: application/pdf

... pdf contents here ...

--END_OF_PART--

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

Przesyłanie załącznika do folderu

Aby przesłać załącznik do istniejącego folderu w folderze filecabinet, uwzględnij kategorię z „hasłem” z nazwą folderu:

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

Załączniki internetowe

Załączniki internetowe to szczególne rodzaje załączników. Zasadniczo są to linki do innych plików w internecie które możesz dodać do listy magazynowej. Ta funkcja działa analogicznie do opcji „Dodaj plik według adresu URL” przesyłania w interfejsie Witryn Google.

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

W tym przykładzie tworzymy obiekt webattachment w magazynie plików, do której odwołuje się identyfikator FILECABINET_ENTRY_ID. Jej tytuł i (opcjonalny) opis mają wartość „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>

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

Powrót do góry



Aktualizowanie treści

Metadane (tytuł, nazwa strony itp.) i zawartość dowolnej strony można edytować za pomocą pojedynczego żądania PUT wysłanego do linku edit. Treść żądania powinna zawierać wpis Atom opisujący zaktualizowaną stronę. Wyjątkiem od tej reguły jest wpis załącznika, w którym można go używać tylko do aktualizowania metadanych załącznika. Aby zmienić zawartość załączonego pliku, umieść nieprzetworzone dane jako treść żądania PUT w link edit-media załącznika. Można również zaktualizować jednocześnie metadane i zawartość załączonego pliku, używając Wieloczęściowe żądanie MIME.

Aby zapewnić, że aktualizacja nie zastępuje zmian innego klienta, dołącz wartość ETag pierwotnego wpisu. Możesz to zrobić w następujący sposób: podając wartość ETag w nagłówku HTTP If-Match lub umieszczając atrybut gd:etag pierwotnego wpisu w parametrze zaktualizowany wpis. Aby określić wartość ETag pierwotnego wpisu, sprawdź atrybut gd:etag elementu <entry>. W przypadku wpisów multimedialnych ich wartość ETag może być dostępna w atrybucie gd:etag linku edit-media.

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

zaktualizowanie metadanych elementu lub treści HTML;

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

Poniżej znajdziesz przykład aktualizowania wpisu listpage (reprezentowanego przez identyfikator ENTRY_ID) z następującymi zmianami:

  • tytuł został zmieniony na „Zaktualizowana treść”;
  • Zaktualizowana zawartość HTML
  • Pierwszy nagłówek kolumny na liście został zmieniony na „Właściciel”
  • Ścieżka adresu URL strony jest modyfikowana przez element <sites:pageName>
PUT /feeds/content/domainName/siteName/ENTRY_ID
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 816
Content-Type: application/atom+xml

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

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

Zastępowanie zawartości załącznika

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

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

... doc contents here ...

Aktualizowanie metadanych i treści załączników

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

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

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

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

--END_OF_PART
Content-Type: application/zip

... zip contents here ...

--END_OF_PART

Powrót do góry



Usuwam treść

Aby usunąć element ze strony w Witrynach Google, najpierw pobierz ten wpis, a następnie wyślij DELETE na adres URL edit wpisu. Jest to ten sam adres URL używany podczas aktualizacji metadanych elementu lub treści HTML.

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

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

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

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

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

Powrót do góry



Pobieranie załączników

Gdy utworzysz wpis załącznika, możesz pobrać plik, wysyłając uwierzytelnione żądanie HTTP GET do wpisu Link źródłowy <content>. 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

Kanał ACL

Omówienie uprawnień do udostępniania (listy kontroli dostępu)

Każdy wpis na liście kontroli dostępu (ACL) w kanale ACL reprezentuje rolę dostępu określonego podmiotu: użytkownika, grupy użytkowników, domeny lub domyślny dostęp (witryna publiczna). Wpisy będą wyświetlane tylko dla jednostek z jawnym dostępem – wyświetli się 1 wpis dla każdego adresu e-mail w polu „People with Access” (Osoby z dostępem) na ekranie udostępniania w interfejsie Witryn Google. Administratorzy domeny nie będą wyświetlani, nawet jeśli mają bezpośredni dostęp do witryny.

Role

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

  • reader – przeglądający (odpowiednik dostępu tylko do odczytu).
  • writer – współpracownik (odpowiednik uprawnień do odczytu i zapisu).
  • owner – zwykle jest administratorem witryny (odpowiednik uprawnień do odczytu i zapisu).

Zakresy

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

  • user – wartość adresu e-mail, np. „użytkownik@gmail.com”.
  • grupa – adres e-mail grupy dyskusyjnej Google, np. „grupa@domena.com”.
  • domena – nazwa domeny G Suite, np. „domena.com”.
  • zaproś – użytkownik, który został zaproszony do witryny, ale jeszcze nie został dodany do listy kontroli dostępu tej witryny. (Niedostępne, jeśli określono gdata w wersji 1.3 lub starszej).
  • default – jest tylko jeden możliwy zakres typu „default”, który nie zawiera wartości; (np.<gAcl:scope type="default">). Ten konkretny zakres określa domyślnie dostęp każdego użytkownika na stronie publicznej.

Uwaga: domeny nie mogą mieć wartości gAcl:role. z ustawieniem „owner” dostęp do treści, mogą być tylko czytelnikami lub autorami.

Informacje o zaproszeniu zakresu.

Interfejs API zwraca zakres zaproszenia, gdy dodajesz do listy kontroli dostępu co najmniej jednego użytkownika, który nie ma jeszcze konta Google. Interfejs API zwraca adres URL z osadzonym tokenem, który należy udostępnić zaproszonym użytkownikom, aby umożliwić im zaakceptowanie zaproszenia.

Ta metoda zaproszenia pozwala zapraszać użytkowników spoza Google bez wcześniejszej wiedzy o tym, jakiego adresu e-mail chcą użyć. Dopóki użytkownicy klikną URL zaproszenia z umieszczonym tokenem, będą mogli zarejestrować się w celu uzyskania dostępu za pomocą dowolnego adresu e-mail. Ponadto wielu użytkowników może użyć tego adresu URL, aby zaakceptować zaproszenie, co jest przydatne, jeśli zapraszasz jednego użytkownika lub grupę użytkowników.

Uwaga: przycisk „zaproś” Zakres jest dostępny tylko w gdata w wersji 1.4 i nowszych. Ta funkcja nie działa, jeśli wyraźnie określasz wersję 1.3 lub niższą.

Pobieranie 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 pliku danychOpis
domainNamesite” lub domena Twojej domeny hostowanej w G Suite (np. example.com).
siteNamenazwa przestrzeni internetowej Twojej witryny; znalezione w adresie URL witryny (np. myCoolSite).

Warto zauważyć, że każdy wpis w kanale witryny zawiera link do takiego 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 polecenie 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 w odpowiedzi przekaże żądanie 200 OK oraz plik danych 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 dodać nową rolę do pliku danych ACL, po prostu wyślij żądanie POST do kanału ACL witryny.

Uwaga: udostępnianie określonych list kontroli dostępu (ACL) jest możliwe tylko wtedy, gdy domena jest skonfigurowana. aby zezwolić na takie uprawnienia (np. jeśli w przypadku domen G Suite udostępnianie poza domenę jest włączone).

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

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

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

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

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

zapraszanie użytkowników za pomocą zaproszenia; zakres

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

Pomyślne zaproszenie zwraca 201 Created i nowy wpis zawierający adres URL, który musisz przekazać użytkownikowi:

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

Udostępnianie na poziomie grupy i domeny

Podobnie jak w przypadku udostępniania witryny jednemu użytkownikowi, możesz udostępnić ją całej Domena grupy dyskusyjnej Google lub domena G Suite. Niezbędne wartości scope podano poniżej.

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

Zmiana uprawnień do udostępniania

Aby zaktualizować wpis na liście kontroli dostępu (ACL), zmodyfikuj go według potrzeb i wyślij żądanie HTTP PUT do dla wpisu edit, który jest po prostu element <link>, którego atrybut „rel” ma wartość „edit” (edytuj). W poprzednim przykładzie ten link wygląda tak:

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

Fragment kodu poniżej zmienia rolę użytkownika new_writer@gmail.com na „reader”:

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

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

Usuwanie uprawnień do udostępniania

Aby odebrać uprawnienia temu użytkownikowi, wyślij prośbę o DELETE z tym samym linkiem edit, którego użyto w przypadku prośby PUT:

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

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

Powrót do góry

Tematy specjalne

Ponowne pobieranie kanału lub wpisu

Jeśli chcesz pobrać pobrany wcześniej kanał lub wpis, możesz poprawić wydajność, mówiąc z serwera, aby wysyłał listę lub wpis tylko wtedy, gdy zmieniły się one od ostatniego pobrania.

Aby skorzystać z tego rodzaju pobierania warunkowego, wyślij żądanie HTTP GET zawierające adres HTTP If-None-Match. W nagłówku określ parametr ETag listy lub wpisu. Znajdziesz go w atrybutu 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 żądany element ma ten sam tag ETag, określony przez Ciebie ETag. Jeśli tagi ETag są zgodne, element nie uległ zmianie, a serwer zwraca Kod stanu HTTP 304 Not Modified lub kod stanu HTTP 412 Precodition Failed. Jedno i drugie kody stanu wskazują, że pobrany już element jest aktualny.

Jeśli znaczniki ETag są różne, oznacza to, że element został zmodyfikowany od czasu ostatniego żądania, a serwer zwraca go.

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

Przetwarzanie wsadowe

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

Serwer wykona jak najwięcej żądanych zmian i zwróci informacje o stanie, ocenić powodzenie lub niepowodzenie każdej operacji. Więcej informacji o przetwarzaniu wsadowym w interfejsie Google Data API znajdziesz Więcej informacji: Przetwarzanie wsadowe z wykorzystaniem interfejsów API danych Google

Każda operacja w pliku danych zbiorczych zawiera element &lt;id&gt;, oprócz operacji wstawiania. Ten element jest taki sam jak URL żądania, którego normalnie używasz podczas aktualizowania, usuwania lub wysyłania zapytań dotyczących źródła treści. Jeśli na przykład aktualizujesz zmianę, w parametrze &lt;id&gt; podaj link edit dla danego wpisu. Służy do identyfikacji wpisu docelowego. Nowe wpisy nie mają elementów &lt;id&gt;, ponieważ nie zostały jeszcze utworzone. Zamiast tego możesz zdefiniować wartość ciągu w &lt;batch:id&gt;, która będzie w odpowiedzi serwera i posłużyło do wyszukania odpowiedniej pozycji.

Aby przesłać żądanie zbiorcze, utwórz kanał wsadowy i wyślij żądanie HTTP POST na jego link wsadowy:

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

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

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

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

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

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

Powrót do góry