Protokollleitfaden

Mit der klassischen Google Sites API können Ihre Anwendungen auf Inhalte in Google Sites zugreifen, sie veröffentlichen und ändern. Außerdem kann Ihre Anwendung eine Liste der letzten Aktivitäten anfordern, den Überarbeitungsverlauf abrufen und Anhänge und Dateien hoch- und herunterladen.

Zielgruppe

In diesem Dokument wird davon ausgegangen, dass Sie die allgemeinen Konzepte des Google Data APIs-Protokolls kennen.

Dieses Dokument richtet sich an Programmierer, die Clientanwendungen schreiben möchten, die mit Google Sites interagieren können. Es enthält eine Reihe von Beispielen für grundlegende Daten-API-Interaktionen mit Roh-XML/HTTP sowie Erläuterungen. Nachdem Sie dieses Dokument gelesen haben, können Sie sich die sprachspezifischen Beispiele in den anderen Anleitungen in der linken Navigationsleiste ansehen, um mehr über die Interaktion mit der API mithilfe unserer Clientbibliotheken zu erfahren.

Eine Referenz zu den Inhalten in diesem Leitfaden finden Sie im Referenzhandbuch.

Anfragen autorisieren

Wenn Ihre Anwendung nicht öffentliche Nutzerdaten anfordert, muss sie ein Autorisierungstoken enthalten. Anhand dieses Tokens wird deine Anwendung Google gegenüber identifiziert.

Autorisierungsprotokolle

Ihre Anwendung muss zur Autorisierung von Anfragen OAuth 2.0 verwenden. Andere Autorisierungsprotokolle werden nicht unterstützt. Wenn deine Anwendung Über Google anmelden verwendet, werden einige Schritte der Autorisierung automatisch ausgeführt.

Anfragen mit OAuth 2.0 autorisieren

Anfragen an die Google Sites Data API für nicht öffentliche Nutzerdaten müssen von einem authentifizierten Nutzer autorisiert werden.

Die Details dieses Autorisierungsablaufs für OAuth 2.0 hängen davon ab, welche Art von Anwendung du schreibst. Die folgende allgemeine Vorgehensweise gilt für alle Arten von Anwendungen:

  1. Wenn Sie Ihre Anwendung erstellen, registrieren Sie diese über die Google API Console. Google stellt Ihnen dann die Informationen bereit, die du später benötigst, z. B. eine Client-ID und einen Clientschlüssel.
  2. Aktivieren Sie die Google Sites Data API in der Google API Console. Überspringe diesen Schritt, falls die API nicht in der API Console aufgeführt ist.
  3. Wenn deine Anwendung Zugriff auf Nutzerdaten benötigt, bittet sie Google um einen bestimmten Zugriffsbereich.
  4. Dem Nutzer wird von Google ein Zustimmungsbildschirm angezeigt, auf dem er gebeten wird, deine Anwendung dazu zu autorisieren, einige seiner Daten abzufragen.
  5. Wenn der Nutzer zustimmt, erhält deine Anwendung von Google ein kurzlebiges Zugriffstoken.
  6. Die Anwendung fordert Nutzerdaten an, wobei das Zugriffstoken an die Anfrage angehängt wird.
  7. Stellt Google fest, dass Ihre Anfrage und das Token gültig sind, werden die angeforderten Daten zurückgegeben.

Einige Abläufe enthalten zusätzliche Schritte, beispielsweise die Verwendung von Aktualisierungstoken zum Erhalt neuer Zugriffstoken. Weitere Informationen über die Abläufe für die unterschiedlichen Anwendungstypen findest du in der OAuth 2.0-Dokumentation.

Folgendes sind die OAuth 2.0-Bereichsinformationen für die Google Sites Data API:

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

Zur Anforderung eines Zugriffs mit OAuth 2.0 benötigt Ihre Anwendung die Informationen zum Umfang sowie die Informationen, die Google bei der Registrierung Ihrer Anwendung bereitstellt, z. B. die Client-ID und den Clientschlüssel.

Nach oben

Version angeben

Bei jeder Anfrage, die Sie an die Google Sites Data API senden, sollte die Version 1.4 angegeben werden. Verwenden Sie den HTTP-Header GData-Version, um eine Versionsnummer anzugeben:

GData-Version: 1.4

Wenn Sie keine HTTP-Header festlegen können, können Sie alternativ v=1.4 als Suchparameter in der URL angeben. Der HTTP-Header wird jedoch nach Möglichkeit bevorzugt.

Hinweis: Die Clientbibliotheken stellen automatisch die entsprechenden Versionsheader bereit. Verwenden Sie daher den Abfrageparameter v=1.4 nicht, wenn Sie eine Clientbibliothek verwenden.

Nach oben

Websitefeed

Mit dem Website-Feed können Sie die Google Sites-Websites auflisten, deren Inhaber ein Nutzer ist oder für die er Leseberechtigungen hat. Außerdem können Sie den Titel einer vorhandenen Website ändern. In G Suite-Domains kann sie auch verwendet werden, um eine gesamte Website zu erstellen oder zu kopieren.

Websites mit Einträgen

Wenn Sie die Websites auflisten möchten, auf die ein Nutzer Zugriff hat, senden Sie eine authentifizierte GET-Anfrage an die folgende URL:

https://sites.google.com/feeds/site/domainName
Feed parameterBeschreibung
domainName„site“ oder die Domain Ihrer von G Suite gehosteten Domain (z.B. example.com).

Die Antwort enthält einen Feed mit einer Liste von Websites:

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>

Die Websites sind in alphabetischer Reihenfolge aufgeführt.

Neue Websites erstellen

Hinweis: Diese Funktion ist nur für G Suite-Domains verfügbar.

Neue Websites können durch einen HTTP-POST-Aufruf an den Website-Feed bereitgestellt werden, z. B.:

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>

Mit der obigen Anfrage wird eine neue Google Sites-Website mit dem Design „Slate“ unter der G Suite-Domain example.com erstellt. Die URL der Website lautet http://sites.google.com/a/beispiel.de/quellwebsite/.

Wenn die Website erfolgreich erstellt wurde, antwortet der Server mit 201 Created. Der Antwort-Eintrag enthält Elemente, die vom Server hinzugefügt wurden, z. B. einen Link zur Website, einen Link zum ACL-Feed der Website, den Websitenamen, den Titel und die Zusammenfassung.

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

Website kopieren

Hinweis: Diese Funktion ist nur für G Suite-Domains verfügbar.

Eine vorhandene Website kann auf dieselbe Weise dupliziert werden wie eine neue Website erstellt wird. Fügen Sie jedoch im Atom-Eintrag der POST-Anfrage ein <link>-Element mit einem rel='source'-Attribut ein, das auf den Website-Feed der zu kopierenden Website verweist. Jede kopierte Website hat diesen Link. Hier ein Beispiel für das Duplizieren einer Website:

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>

Mit der obigen Anfrage wird die Website unter http://sites.google.com/a/example.com/source-site/ kopiert.

Wichtige Punkte:

  • Es können nur Websites und Websitevorlagen kopiert werden, die dem authentifizierten Nutzer gehören.
  • Eine Websitevorlage kann auch kopiert werden. Eine Website ist eine Vorlage, wenn die Einstellung „Diese Website als Vorlage veröffentlichen“ auf der Seite mit den Google Sites-Einstellungen aktiviert ist.
  • Sie können eine Website aus einer anderen Domain kopieren, sofern Sie als Inhaber der Quellwebsite aufgeführt sind.

Metadaten einer Website aktualisieren

Wenn Sie den Titel oder die Zusammenfassung einer Website aktualisieren möchten, senden Sie eine HTTP-PUT-Anfrage an den edit-Link eines Websiteeintrags. Im folgenden Beispiel wird der Titel der vorherigen Website in New Test Site2 und die Beschreibung in Newer description geändert.

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>

Kategorien hinzufügen

Hinweis: Diese Funktion ist nur für G Suite-Domains verfügbar.

G Suite für Ihre Domain-Websites enthält Kategorie-Metadaten, die für die Kategorisierung von Websites innerhalb Ihrer Domain nützlich sind. Wenn Sie Kategorie-Metadaten hinzufügen oder aktualisieren möchten, senden Sie eine HTTP-PUT-Anfrage an den edit-Link Ihres Websiteeintrags, der ein category-Tag enthält. Siehe die fett dargestellte Zeile im folgenden Beispiel:

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>

In diesem Beispiel wird eine vorhandene Website bearbeitet und die Kategorie „Teamwebsite“ hinzugefügt.

Sie können auch mehrere Kategorien hinzufügen, indem Sie zusätzliche <category>-Tags hinzufügen. Sehen Sie sich die fett formatierten Zeilen im folgenden Beispiel an:

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>

In diesem Beispiel werden zwei Kategorien hinzugefügt: „Teamwebsite“ und „Rechtsabteilung“.

Webadressen zuordnen

Mit der Zuordnung von Webadressen können Sites-Nutzer ihre eigenen Domains einer Google-Website zuordnen. http://www.mydomainsite.com kann beispielsweise anstelle von http://sites.google.com/a/domain.com/mysite verwendet werden. Je nachdem, wo Ihre Website gehostet wird, können Sie die Zuordnungen der Webadressen einer Website manuell ändern. Weitere Informationen dazu findest du in unserem Hilfeartikel.

Webadressenzuordnungen einer Website abrufen

Wenn Sie die Webadressenzuordnungen für eine Website zurückgeben möchten, rufen Sie den Websiteeintrag/-feed mit dem Parameter with-mappings=true ab:

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>

Vorhandene Zuordnungen werden als links mit rel='webAddressMapping' angezeigt. Im obigen Beispiel gibt es beispielsweise drei webAddressMappings, die auf die Website http://sites.google.com/site/myOtherTestSite verweisen.

Webadressenzuordnungen ändern

Hinweis: Bei allen GET/POST/PUT-Vorgängen sollte der Parameter with-mappings=true angegeben werden, wenn mit Webadressenzuordnungen gearbeitet wird. Wenn der Parameter nicht vorhanden ist, werden webAddressMappings nicht in Websiteeinträgen (GET) zurückgegeben oder beim Aktualisieren/Entfernen (PUT) von Zuordnungen aus einem Eintrag berücksichtigt.

Wenn Sie eine Zuordnung hinzufügen, aktualisieren oder löschen möchten, geben Sie einfach einen solchen Link an, ändern oder entfernen Sie ihn, wenn Sie neue Websites erstellen oder die Metadaten einer Website aktualisieren. Der Parameter with-mappings=true muss im Website-Feed-URI enthalten sein. Hinweis: Zum Aktualisieren von Adresszuordnungen müssen Sie Websiteadministrator oder, im Fall einer von G Suite gehosteten Website, Domainadministrator sein.

Mit der folgenden Anfrage wird beispielsweise die Zuordnung http://www.mysitemapping.com zu http://www.my-new-sitemapping.com aktualisiert und http://www.mysitemapping2.com entfernt, indem der Link aus dem Eintrag weggelassen wird:

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>

Hinweis: Webadressenzuordnungen können auch beim Erstellen oder Kopieren einer Website angegeben werden.

Nach oben

Aktivitätsfeed

Sie können die letzten Aktivitäten (Änderungen) einer Website abrufen, indem Sie den Aktivitätsfeed abrufen. Jeder Eintrag im Aktivitätsfeed enthält Informationen zu einer Änderung, die an der Website vorgenommen wurde.

Wenn Sie den Aktivitätsfeed abfragen möchten, senden Sie eine HTTP-GET-Anfrage an die Aktivitätsfeed-URL:

https://sites.google.com/feeds/activity/domainName/siteName
Feed parameterBeschreibung
domainName„site“ oder die Domain Ihrer von G Suite gehosteten Domain (z.B. example.com).
siteNameDer Webspace-Name Ihrer Website, der in der URL der Website enthalten ist (z.B. myCoolSite).

Beispiel für Anfrage und Antwort:

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>

Hinweis: Für den Zugriff auf diesen Feed müssen Sie Mitbearbeiter oder Inhaber der Website sein. Ihr Client muss den richtigen Authorization-Header senden und auf das Token verweisen, das Sie unter Anfragen autorisieren erhalten haben.

Nach oben

Überarbeitungsfeed

Wenn Sie den Überarbeitungsverlauf für einen Inhaltseintrag abrufen möchten, senden Sie eine HTTP-GET-Anfrage an den Versionslink des Eintrags:

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Feed parameterBeschreibung
domainName„site“ oder die Domain Ihrer von G Suite gehosteten Domain (z.B. example.com).
siteNameDer Webspace-Name Ihrer Website, der in der URL der Website enthalten ist (z.B. myCoolSite).

Wenn Sie den Überarbeitungslink für eine bestimmte Seite, einen Kommentar, einen Anhang oder ein Listenelement finden möchten, rufen Sie zuerst den Eintrag aus dem Content-Feed mithilfe seiner CONTENT_ENTRY_ID ab. Der abgerufene Eintrag enthält einen <atom:link>-Wert für den Versionsfeed. Beispiel:

<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"/>

Beispiel für Anfrage und Antwort:

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>

Hinweis: Für den Zugriff auf diesen Feed müssen Sie Mitbearbeiter oder Inhaber der Website sein. Ihr Client muss den richtigen Authorization-Header senden und auf das Token verweisen, das Sie unter Anfragen autorisieren erhalten haben.

Nach oben

Inhaltsfeed

Inhalte werden abgerufen

Im Content-Feed werden die aktuellen Inhalte einer Website aufgeführt. Senden Sie eine authentifizierte GET-Anfrage an die folgende URL:

https://sites.google.com/feeds/content/domainName/siteName
Feed parameterBeschreibung
domainName„site“ oder die Domain Ihrer von G Suite gehosteten Domain (z.B. example.com).
siteNameDer Webspace-Name Ihrer Website, der in der URL der Website enthalten ist (z.B. myCoolSite).

Das Ergebnis ist ein Feed, der die erste Seite der Inhaltseinträge auf der Website auflistet. Jeder Eintrag im Feed steht für einen anderen Typ von Inhaltseintrag, z. B. webpage, filecabinet, attachment, comment usw. Das Element <category scheme="http://schemas.google.com/g/2005#kind"> bestimmt den Typ des Eintrags. Eine Liste der unterstützten kind-Werte finden Sie im Referenzhandbuch.

Hinweis: Für diesen Feed ist je nach den Freigabeberechtigungen der Website möglicherweise eine Authentifizierung erforderlich. Wenn die Website nicht öffentlich ist, muss Ihr Kunde den richtigen Authorization-Header senden (siehe Beispiel oben) und auf das Token verweisen, das er unter Anfragen autorisieren erhalten hat.

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>

Hinweis: Dies sind nur die ersten Ergebnisse. Wenn Sie den gesamten Content-Feed durchblättern möchten, folgen Sie dem Link „next“ des Feeds:

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

Eine Erläuterung der gemeinsamen Elemente von Atom finden Sie in der Referenz zum Google Data-Protokoll. Elemente, die für die API des klassischen Google Sites eine bestimmte Bedeutung haben, werden unten beschrieben. Bestimmte Arten von Einträgen haben zusätzliche Eigenschaften (nicht unten aufgeführt), andere nicht. Ein listitem-Eintrag kann beispielsweise <gs:field>-Elemente enthalten, ein webpage-Eintrag jedoch nicht.

ElementBeschreibung
<content ...>Der innere Text ist der HTML-Text der Seite. Bei einigen Einträgen (z.B. Anhängen) enthält dieses Element ein src-Attribut, das auf die Datei verweist.
<link rel="alternate" ...>Link zur Seite oder zum Element in Google Sites.
<link rel="http://schemas.google.com/sites/2008#revision" ...>Das Attribut href verweist auf den Überarbeitungsfeed des Eintrags.
<link rel="http://schemas.google.com/sites/2008#parent" ...>Das Attribut href verweist auf den übergeordneten Eintrag des Eintrags.
<link rel="http://schemas.google.com/sites/2008#template" ...>Das Attribut href verweist auf die Vorlagenseite des Eintrags.
<category scheme="http://schemas.google.com/g/2005#kind" ...>label ist der Typ des Eintrags.
<category term="http://schemas.google.com/g/2005#template" ...>label=template, was bedeutet, dass der Eintrag eine Vorlage ist.
<gd:feedLink>Das Attribut href verweist auf die untergeordneten Elemente des übergeordneten Elements des Eintrags.
<sites:pageName>Webspace-Name der Seite, der dem Namen in der URL der Seite entspricht.
<sites:revision>Aktuelle Versionsnummer.

Beispiele für Abfragen von Content-Feeds

Sie können den Content-Feed mit einigen der Standard-Suchparameter der Google Data API und den für die klassische Sites API spezifischen Parametern durchsuchen. Weitere Informationen und eine vollständige Liste der unterstützten Parameter finden Sie im Referenzhandbuch.

Bestimmte Eintragsarten abrufen

Wenn Sie nur einen bestimmten Eintragstyp abrufen möchten, verwenden Sie den Parameter kind. In diesem Beispiel werden nur webpage-Einträge zurückgegeben:

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

Wenn Sie mehr als einen Eintragstyp zurückgeben möchten, trennen Sie die einzelnen kind durch ein Komma. In diesem Beispiel werden filecabinet- und listpage-Einträge zurückgegeben:

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

Alternativ können Sie das Standardformat für eine Google Data-/-/category-Abfrage anstelle des Parameters kind verwenden:

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

Seitenvorlagen werden abgerufen

In diesem Beispiel werden nur template Seiten zurückgegeben:

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

Verwenden Sie Folgendes, um alle Eintragstypen zurückzugeben und template-Seiten einzuschließen:

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

Seite nach Pfad abrufen

Wenn Sie den relativen Pfad einer Seite innerhalb der Google Sites-Website kennen, können Sie den Parameter path verwenden, um diese bestimmte Seite abzurufen. In diesem Beispiel wird die Seite unter http://sites.google.com/site/siteName/path/to/the/page zurückgegeben:

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

Alle Einträge unter einer übergeordneten Seite abrufen

Wenn Sie die Eintrags-ID einer Seite kennen, können Sie den Parameter parent verwenden, um alle untergeordneten Einträge (falls vorhanden) abzurufen:

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

Einschließlich Entwürfe oder gelöschte Einträge

Wenn Sie Entwürfe oder gelöschte Einträge einbeziehen möchten, verwenden Sie die Parameter include-drafts bzw. include-deleted. Dieses Beispiel enthält Entwurfseinträge im Content-Feed:

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

Volltextsuche

Wenn Sie den gesamten Inhalt einer Website durchsuchen möchten, verwenden Sie den Parameter q, um eine Volltextsuche auszuführen:

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

Nach oben



Inhalte erstellen

Neue Inhalte (Webseiten, Listenseiten, Dateispeicherseiten, Mitteilungsseiten usw.) können erstellt werden, indem ein HTTP-POST-Befehl an den Content-Feed gesendet wird:

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

Eine Liste der unterstützten Eintragstypen finden Sie im Referenzhandbuch unter dem Parameter kind.

Neue Elemente/Seiten erstellen

In diesem Beispiel wird eine neue webpage auf der obersten Ebene der Website erstellt, XHTML für den Seitentext eingefügt und der Titel der Überschrift auf „New WebPage Title“ festgelegt:

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>

Bei Erfolg antwortet der Server mit 201 Created und einer Kopie des Eintrags.

Elemente/Seiten unter benutzerdefinierten URL-Pfaden erstellen

Standardmäßig wird das vorherige Beispiel unter der URL http://sites.google.com/domainName/siteName/new-webpage-title erstellt und hat die Seitenüberschrift „Neuer Webseitentitel“. Das heißt, <atom:title> wird für die URL zu new-webpage-title normalisiert. Wenn Sie den URL-Pfad einer Seite anpassen möchten, können Sie das Element <sites:pageName> festlegen.

In diesem Beispiel wird eine neue filecabinet mit der Seitenüberschrift „File Storage“ erstellt. Die Seite wird jedoch unter der URL http://sites.google.com/domainName/siteName/files erstellt, indem das Element <sites:pageName> angegeben wird.

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>

Der Server verwendet die folgenden Prioritätsregeln für die Benennung des URL-Pfads einer Seite:

  1. <sites:pageName>, falls vorhanden. Muss a-z, A-Z, 0-9, -, _ erfüllen.
  2. <atom:title>, darf nicht null sein, wenn pageName nicht vorhanden ist. Bei der Normalisierung werden Leerzeichen gekürzt und zu „-“ zusammengefasst. Zeichen, die nicht mit a-z, A-Z, 0-9, -, _ übereinstimmen, werden entfernt.

Beispiel: „Custom_Page2“ wird vom Server akzeptiert.

Unterseiten erstellen

Wenn Sie Unterseiten (untergeordnete Seiten) unter einer übergeordneten Seite erstellen möchten, fügen Sie in Ihren neuen Atom-Eintrag ein <link rel="http://schemas.google.com/sites/2008#parent"> ein. Legen Sie das Attribut href des Links auf den Self-Link des übergeordneten Eintrags fest.

In diesem Beispiel wird eine neue announcement mit der Überschrift „announcement“ unter einer übergeordneten Mitteilungsseite mit der Eintrags-ID PARENT_ENTRY_ID erstellt. Der XHTML-Inhalt für den Seitentext ist ebenfalls enthalten:

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>

Seitenvorlagen

Seitenvorlagen erstellen

Das Erstellen einer Seitenvorlage funktioniert genauso wie das Erstellen neuer Elemente/Seiten und das Erstellen von Unterseiten. Der Unterschied besteht darin, dass category mit dem Begriff und dem Label „http://schemas.google.com/g/2005#template“ bzw. „template“ hinzugefügt wird.

In diesem Beispiel wird eine neue webpage-Vorlage erstellt.

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>

Seiten aus einer Vorlage erstellen

Ähnlich wie beim Erstellen von Seitenvorlagen können Sie eine neue Seite aus einer Vorlage instanziieren, indem Sie ein <link> mit rel='http://schemas.google.com/sites/2008#template' einfügen, das auf den Self-Link einer Seitenvorlage verweist.

In diesem Beispiel wird eine neue filecabinet-Seite aus einer vorhandenen Seitenvorlage erstellt, die eine Dateiablage definiert.

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>

Hinweis: Auch wenn in einer Vorlage ein <category> definiert ist, müssen Sie einen in Ihren Eintrag aufnehmen. Wenn Sie ein <content>-Element einfügen, wird es vom Server abgelehnt.

Dateien werden hochgeladen

Wie in Google Sites können Sie mit der API Anhänge auf Dateiablageseiten und übergeordnete Seiten hochladen.

Wenn Sie einen Anhang in ein übergeordnetes Element hochladen möchten, senden Sie eine HTTP-POST-Anfrage an die URL des Content-Feeds:

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

Der POST-Text sollte eine MIME-Multipart-Anfrage sein, um Dateiinhalte mit einer <atom:entry> zu kombinieren, die die Metadaten des Anhangs enthält. <atom:entry> sollte auf den Self-Link des übergeordneten Eintrags verweisen, um anzugeben, wo der Anhang erstellt wird. Weitere Informationen finden Sie unter Unterseiten erstellen.

Anhänge werden hochgeladen

Hier sehen Sie ein Beispiel für das Hochladen einer PDF-Datei in eine Dateiablage mit der ID PARENT_ENTRY_ID. Der Anhang wird mit dem Titel „PDF-Datei“ und der (optionalen) Beschreibung „HR-Paket“ erstellt.

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

Wenn der Upload erfolgreich ist, antwortet der Server mit 201 Created und einer Kopie des neu erstellten Anhangseintrags.

Anhang in einen Ordner hochladen

Wenn Sie einen Anhang in einen vorhandenen Ordner in einem filecabinet hochladen möchten, fügen Sie eine Kategorie hinzu, bei der das Attribut „term“ auf den Namen des Ordners festgelegt ist:

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

Webanhänge

Webanhänge sind spezielle Arten von Anhängen. Im Grunde sind es Links zu anderen Dateien im Web, die Sie Ihren Ablageeinträgen hinzufügen können. Diese Funktion entspricht der Uploadmethode „Datei über URL hinzufügen“ in der Google Sites-Benutzeroberfläche.

Hinweis: Webanhänge können nur in einer Dateiablage erstellt werden. Sie können nicht auf andere Seitentypen hochgeladen werden.

In diesem Beispiel wird ein webattachment unter dem Aktenschrank mit der ID FILECABINET_ENTRY_ID erstellt. Der Titel und die (optionale) Beschreibung sind auf „GoogleLogo“ bzw. „schöne Farben“ festgelegt.

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>

Mit POST wird im Filecabinet des Nutzers ein Link erstellt, der auf das Bild unter „http://www.google.com/images/logo.gif“ verweist.

Nach oben



Inhalte aktualisieren

Die Metadaten (Titel, Seitenname usw.) und der Seiteninhalt einer beliebigen Seite können mit einer einzigen PUT-Anfrage an den edit-Link bearbeitet werden. Der Anfragetext sollte einen Atom-Eintrag enthalten, der die aktualisierte Seite beschreibt. Die Ausnahme von dieser Regel ist ein Anhangseintrag, der nur zum Aktualisieren der Metadaten des Anhangs verwendet werden kann. Wenn Sie den Inhalt der angehängten Datei ändern möchten, fügen Sie die Rohdaten einfach als Text einer PUT-Anfrage an den edit-media-Link des Anhangs ein. Sie können auch die Metadaten und den Inhalt der angehängten Datei gleichzeitig mit einer MIME-Multipart-Anfrage aktualisieren.

Wenn Sie sicherstellen möchten, dass Ihre Aktualisierung nicht die Änderungen eines anderen Clients überschreibt, fügen Sie den ETag-Wert des ursprünglichen Eintrags ein. Dazu können Sie den ETag-Wert in einem HTTP-If-Match-Header angeben oder das Attribut gd:etag des ursprünglichen Eintrags in den aktualisierten Eintrag einfügen. Um den ETag-Wert des ursprünglichen Eintrags zu ermitteln, prüfen Sie das Attribut gd:etag des Elements <entry>. Bei Medieneinträgen ist das ETag der Medien möglicherweise im Attribut gd:etag des Links edit-media verfügbar.

Wenn Sie den Eintrag unabhängig davon aktualisieren möchten, ob er seit dem Abrufen von jemand anderem aktualisiert wurde, verwenden Sie If-Match: * und geben Sie das ETag nicht an. Weitere Informationen zu ETags finden Sie im Referenzhandbuch zu Google Data APIs.

Metadaten oder HTML-Inhalte eines Elements aktualisieren

Wenn Sie die Metadaten oder den HTML-Inhalt eines Eintrags aktualisieren möchten, senden Sie eine HTTP-PUT-Anfrage an den edit-Link des Eintrags.

Im Folgenden finden Sie ein Beispiel für die Aktualisierung eines listpage-Eintrags (dargestellt durch die ID ENTRY_ID) mit den folgenden Änderungen:

  • Der Titel wird in „Aktualisierter Inhalt“ geändert.
  • Aktualisierter HTML-Inhalt
  • Die erste Spaltenüberschrift der Liste wird in „Inhaber“ geändert.
  • Der URL-Pfad der Seite wird durch das <sites:pageName>-Element geändert.
PUT /feeds/content/domainName/siteName/ENTRY_ID
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>
Content-Length: 816
Content-Type: application/atom+xml

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

Hinweis: Der Eintrag (wie vom Server zurückgegeben) enthält mehr Elemente als im obigen Beispiel.

Inhalt eines Anhangs ersetzen

Im Folgenden finden Sie ein Beispiel, wie Sie den Inhalt eines Anhangs ersetzen, ohne die Metadaten zu ändern. Da die Anfrage neue Inhalte enthält, wird der Link edit-media des Anhangseintrags verwendet.

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

Anhangsmetadaten und ‑inhalte aktualisieren

Im Folgenden finden Sie ein Beispiel für die gleichzeitige Aktualisierung der Metadaten und des Inhalts eines Anhangs. Der Name des Anhangs wird in „Neuer Titel“ geändert und der Inhalt wird durch den Inhalt einer ZIP-Datei ersetzt. Da die Anfrage neue Dateiinhalte enthält, wird der Link edit-media des Anhangseintrags verwendet.

Wenn Sie das ETag für die Metadaten angeben, wird implizit auch ein If-Match für den Medieninhalt bereitgestellt, da jede Aktualisierung des Medieninhalts dazu führt, dass sich das ETag der Metadaten ändert.

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

Nach oben



Inhalte löschen

Wenn Sie ein Element von einer Google-Website entfernen möchten, rufen Sie zuerst den Eintrag ab und senden Sie dann eine DELETE-Anfrage an die edit-URL des Eintrags. Dies ist dieselbe URL, die beim Aktualisieren der Metadaten oder des HTML-Inhalts eines Elements verwendet wird.

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>

Wenn der Eintrag erfolgreich gelöscht wurde, antwortet der Server mit dem HTTP-Statuscode 200 OK.

Wenn Sie sichergehen möchten, dass Sie keinen Eintrag löschen, der seit dem Abrufen durch einen anderen Client geändert wurde, fügen Sie einen HTTP-If-Match-Header ein, der den ETag-Wert des ursprünglichen Eintrags enthält. Sie können den ETag-Wert des ursprünglichen Eintrags ermitteln, indem Sie das Attribut gd:etag des Elements <entry> prüfen.

Wenn Sie den Eintrag unabhängig davon löschen möchten, ob er seit dem Abrufen von jemand anderem aktualisiert wurde, verwenden Sie If-Match: * und geben Sie das ETag nicht an. (In diesem Fall müssen Sie den Eintrag nicht abrufen, bevor Sie ihn löschen.)

Weitere Informationen zu ETags finden Sie im Referenzhandbuch zu Google Data APIs.

Nach oben



Anhänge werden heruntergeladen

Sobald Sie einen Anhangseintrag haben, können Sie die Datei herunterladen, indem Sie eine authentifizierte HTTP-GET-Anfrage an den <content>-src-Link des Eintrags senden. Beispiel für einen Inhaltslink in einer PDF-Datei:

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

Nach oben

ACL-Feed

Übersicht über Freigabeberechtigungen (ACLs)

Jeder ACL-Eintrag im ACL-Feed stellt eine Zugriffsrolle einer bestimmten Entität dar, entweder eines Nutzers, einer Nutzergruppe, einer Domain oder des Standardzugriffs (eine öffentliche Website). Es werden nur Einträge für Entitäten mit explizitem Zugriff angezeigt. Für jede E-Mail-Adresse im Bereich „Personen mit Zugriff“ auf dem Bildschirm „Freigeben“ der Google Sites-Benutzeroberfläche wird ein Eintrag angezeigt. Domainadministratoren werden daher nicht angezeigt, obwohl sie impliziten Zugriff auf eine Website haben.

Rollen

Das Rollenelement stellt eine Zugriffsebene dar, die eine Entität haben kann. Es gibt vier mögliche Werte für das gAcl:role-Element:

  • reader: ein Betrachter (entspricht Lesezugriff).
  • writer: ein Mitbearbeiter (entspricht Lese-/Schreibzugriff).
  • owner: in der Regel der Websiteadministrator (entspricht Lese-/Schreibzugriff).

Bereiche

Das Element „scope“ stellt die Entität dar, die diese Zugriffsebene hat. Es gibt fünf mögliche Typen des gAcl:scope-Elements:

  • user: ein E-Mail-Adresswert, z. B. „user@gmail.com“.
  • group: eine E-Mail-Adresse einer Google-Gruppe, z. B. „group@domain.com“.
  • domain: ein G Suite-Domainname, z. B. „domain.com“.
  • invite: Ein Nutzer, der zur Website eingeladen, aber noch nicht zur ACL für die Website hinzugefügt wurde. (Nicht verfügbar, wenn gdata 1.3 oder niedriger angegeben ist.)
  • default: Es gibt nur einen möglichen Bereich vom Typ „default“, der keinen Wert hat (z. B. <gAcl:scope type="default">). Dieser Bereich steuert den Zugriff, den jeder Nutzer standardmäßig auf einer öffentlichen Website hat.

Hinweis: Domains können keinen gAcl:role-Wert mit „Inhaber“-Zugriff haben. Sie können nur Leser oder Bearbeiter sein.

Informationen zum Bereich „Einladen“.

Die API gibt den Einladungsbereich zurück, wenn Sie der ACL einen oder mehrere Nutzer hinzufügen, die noch kein Google-Konto haben. Die API gibt eine URL mit einem eingebetteten Token zurück, das Sie den eingeladenen Nutzern zur Verfügung stellen müssen, damit sie die Einladung annehmen können.

Mit dieser Einladungsmethode können Sie Nutzer ohne Google-Konto einladen, ohne vorher zu wissen, welche E-Mail-Adresse sie verwenden möchten. Solange Nutzer auf die Einladungs-URL mit dem eingebetteten Token klicken, können sie sich mit einer beliebigen E‑Mail-Adresse für den Zugriff registrieren. Außerdem können mehrere Nutzer diese URL verwenden, um die Einladung anzunehmen. Das ist nützlich, wenn Sie einen Nutzer oder eine Gruppe von Nutzern einladen.

Hinweis: Der Bereich „invite“ ist nur in gdata-Versionen ab 1.4 verfügbar. Dies funktioniert nicht, wenn Sie explizit 1.3 oder niedriger angeben.

ACL-Feed abrufen

Der ACL-Feed kann verwendet werden, um die Freigabeberechtigungen einer Website zu steuern. Er ist über den folgenden URI zugänglich:

https://sites.google.com/feeds/acl/site/domainName/siteName
Feed parameterBeschreibung
domainName„site“ oder die Domain Ihrer von G Suite gehosteten Domain (z.B. example.com).
siteNameDer Webspace-Name Ihrer Website, der in der URL der Website enthalten ist (z.B. myCoolSite).

Jeder Eintrag im Website-Feed enthält einen Link zu diesem Feed:

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

Wenn Sie die Freigabeberechtigungen einer Website abrufen möchten, senden Sie eine HTTP-GET-Anfrage an den ACL-Feed-URI:

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

Der Server antwortet mit 200 OK und einem Feed mit ACL-Einträgen:

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

Nach oben

Website freigeben

Der ACL-Feed akzeptiert GET-, POST- und PUT-Anfragen. Wenn Sie eine neue Rolle in den ACL-Feed einfügen möchten, senden Sie einfach eine POST-Anfrage an den ACL-Feed der Website.

Hinweis: Bestimmte Freigabe-ACLs sind möglicherweise nur möglich, wenn die Domain so konfiguriert ist, dass solche Berechtigungen zulässig sind (z.B. wenn die Freigabe außerhalb der Domain für G Suite-Domains aktiviert ist).

In diesem Beispiel wird der Website ein neuer Mitbearbeiter (Autor) hinzugefügt:

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>

Bei einer erfolgreichen Einfügung werden ein 201 Created und der neue Eintrag zurückgegeben:

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

Nutzer über den Bereich „Einladen“ einladen

Wenn Sie Nutzer hinzufügen, die kein Google-Konto haben, gibt die API eine URL zurück, die Sie den Nutzern, die Sie einladen möchten, zur Verfügung stellen müssen. Nachdem sie auf die URL geklickt haben, können sie sich mit einem bestehenden Konto anmelden oder ein neues Konto erstellen, um Zugriff auf die Website zu erhalten.

Eine erfolgreiche Einladung gibt 201 Created und einen neuen Eintrag zurück, der die URL enthält, die Sie an den Nutzer weitergeben müssen:

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

Freigabe auf Gruppen- und Domainebene

Ähnlich wie bei der Freigabe einer Website für einen einzelnen Nutzer können Sie eine Website auch für eine Google-Gruppe oder eine G Suite-Domain freigeben. Die erforderlichen scope-Werte sind unten aufgeführt.

Freigabe für eine Gruppen-E-Mail-Adresse:

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

Freigabe für eine gesamte Domain:

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

Die Freigabe auf Domainebene wird nur für G Suite-Domains und nur für die Domain unterstützt, auf der die Website gehostet wird. Beispielsweise kann http://sites.google.com/a/domain1.com/siteA die gesamte Website nur für domain1.com freigeben, nicht für domain2.com. Websites, die nicht in einer G Suite-Domain gehostet werden (z.B. http://sites.google.com/site/siteB), können keine Domains einladen.

Freigabeberechtigungen ändern

Wenn Sie einen ACL-Eintrag aktualisieren möchten, ändern Sie den Eintrag nach Bedarf und senden Sie eine HTTP-PUT-Anfrage an den edit-Link des Eintrags. Dies ist ein einfaches <link>-Element, dessen „rel“-Attribut auf „edit“ gesetzt ist. Im obigen Beispiel lautet dieser Link:

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

Im folgenden Snippet wird die Rolle von new_writer@gmail.com in „reader“ geändert:

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>

Freigabeberechtigungen entfernen

Wenn Sie die Berechtigungen für diesen Nutzer entfernen möchten, senden Sie eine DELETE-Anfrage an denselben edit-Link, der für die PUT-Anfrage verwendet wurde:

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>

Der Server antwortet mit 200 OK.

Nach oben

Spezielle Themen

Feed oder Eintrag noch einmal abrufen

Wenn Sie einen Feed oder Eintrag abrufen möchten, den Sie bereits abgerufen haben, können Sie die Effizienz verbessern, indem Sie den Server anweisen, die Liste oder den Eintrag nur dann zu senden, wenn sie sich seit dem letzten Abruf geändert haben.

Senden Sie für diese Art von bedingtem Abruf eine HTTP-GET-Anfrage mit einem HTTP-If-None-Match-Header. Geben Sie im Header das ETag der Liste oder des Eintrags an. Sie finden es im Attribut gd:etag des Elements <feed> oder <entry>.

Beispiel für die Verwendung des Website-Feeds:

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

Wenn der Server diese Anfrage empfängt, prüft er, ob das angeforderte Element dasselbe ETag hat wie das von Ihnen angegebene ETag. Wenn die ETags übereinstimmen, hat sich das Element nicht geändert und der Server gibt entweder den HTTP-Statuscode 304 Not Modified oder den HTTP-Statuscode 412 Precodition Failed zurück. Beide Statuscodes weisen darauf hin, dass das bereits abgerufene Element auf dem neuesten Stand ist.

Wenn die ETags nicht übereinstimmen, wurde das Element seit der letzten Anfrage geändert und der Server gibt das Element zurück.

Weitere Informationen zu ETags finden Sie im Referenzhandbuch zu Google Data APIs.

Batch-Verarbeitung

Mit Batchanfragen kann Ihr Client mehrere Vorgänge in einer einzigen Anfrage ausführen, anstatt jeden Vorgang einzeln zu senden.

Der Server führt so viele der angeforderten Änderungen wie möglich aus und gibt Statusinformationen zurück, mit denen Sie den Erfolg oder Misserfolg der einzelnen Vorgänge bewerten können. Weitere Informationen zur Batchverarbeitung in der Google Data API finden Sie unter Batchverarbeitung mit Google Data APIs.

Jeder Vorgang in einem Batchfeed hat ein <id>-Element, mit Ausnahme von Einfügevorgängen. Dieses Element entspricht der Anfrage-URL, die Sie normalerweise beim Aktualisieren, Löschen oder Abfragen des Content-Feeds verwenden würden. Wenn Sie beispielsweise eine Änderung aktualisieren, legen Sie die <id> auf den edit-Link für den betreffenden Eintrag fest. Sie wird verwendet, um den Zieleintrag zu identifizieren. Neue Einträge haben keine <id>-Elemente, da sie noch nicht erstellt wurden. Sie können stattdessen einen Stringwert in <batch:id> definieren, der in der Antwort des Servers zurückgegeben und zum Suchen des entsprechenden Eintrags verwendet wird.

Wenn Sie eine Batchanfrage stellen möchten, erstellen Sie einen Batchfeed und senden Sie eine HTTP-POST-Anfrage an den Batchlink des Feeds:

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

Das folgende Beispiel zeigt, wie Sie einen Webseiteneintrag abfragen, einfügen, aktualisieren und löschen:

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>

Der zurückgegebene Feed enthält einen Ergebniseintrag für jeden Vorgang:

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

Nach oben