Protokollleitfaden

Mit der klassischen Google Sites API können Ihre Anwendungen auf Inhalte innerhalb einer Google Sites-Website zugreifen, diese veröffentlichen und ändern. Darüber hinaus kann Ihre Anwendung eine Liste der letzten Aktivitäten anfordern, den Überarbeitungsverlauf abrufen und Anhänge und Dateien hoch- bzw. herunterladen.

Zielgruppe

In diesem Dokument wird davon ausgegangen, dass Sie die allgemeinen Konzepte hinter dem Google Data APIs-Protokoll kennen.

Dieses Dokument richtet sich an Programmierer, die Clientanwendungen erstellen möchten, die mit Google Sites interagieren können. Sie enthält eine Reihe von Beispielen für grundlegende Daten-API-Interaktionen unter Verwendung von Roh-XML/HTTP mit Erläuterungen. Nachdem Sie dieses Dokument gelesen haben, können Sie sich in den sprachspezifischen Beispielen in den anderen Leitfäden in der Navigationsleiste auf der linken Seite mehr über die Interaktion mit der API mithilfe unserer Clientbibliotheken informieren.

Die Inhalte dieses Leitfadens 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 das 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.

Hier finden Sie Informationen zum Umfang von OAuth 2.0 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

Für jede Anfrage an das Google Sites Data API muss 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 v=1.4 als Suchparameter in der URL angeben. Der HTTP-Header sollte jedoch nach Möglichkeit bevorzugt werden.

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

Nach oben

Website-Feed

Mit dem Websitefeed können Sie die Google Sites-Websites auflisten, die einem Nutzer gehören oder für die er Leseberechtigungen hat, und auch den Titel einer vorhandenen Website ändern. Bei G Suite-Domains kann damit auch eine gesamte Website erstellt oder kopiert werden.

Websites auflisten

Um eine Liste der Websites aufzulisten, 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 aufgelistet.

Neue Websites erstellen

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

Neue Websites können bereitgestellt werden, indem ein HTTP-POST an den Website-Feed gesendet wird. Beispiel:

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 dieser Anfrage wird eine neue Google Sites-Website mit dem Slate-Design unter der G Suite-Domain example.com erstellt. Die URL der Website lautet http://sites.google.com/a/beispiel.de/quellwebsite/.

Wenn die Website erstellt wurde, antwortet der Server mit 201 Created. Der Antworteintrag enthält vom Server hinzugefügte Elemente, 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>

Websites kopieren

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

Eine bestehende Website kann genauso dupliziert werden wie eine neue Website. Fügen Sie jedoch im Atom-Eintrag der POST-Anfrage einen <link> mit rel='source' hinzu, der auf den Websitefeed der zu kopierenden Website verweist. Jede kopierte Website enthält diesen Link. Hier ist 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 Anforderung oben würde die Website unter http://sites.google.com/a/beispiel.de/quellwebsite/ kopiert werden.

Wichtige Punkte:

  • Nur Websites und Websitevorlagen, die dem authentifizierten Nutzer gehören, können kopiert werden.
  • 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.
  • Solange Sie als Inhaber auf der Quellwebsite aufgeführt sind, können Sie Websites aus einer anderen Domain kopieren.

Metadaten einer Website aktualisieren

Wenn du den Titel oder die Zusammenfassung einer Website aktualisieren möchtest, sende ein HTTP-PUT 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.

Die 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 Metadaten für Kategorien hinzufügen oder aktualisieren möchten, senden Sie eine HTTP-PUT an den edit-Link Ihres Websiteeintrags, der ein category-Tag enthält. Sehen Sie sich im folgenden Beispiel die fett gedruckte Zeile an:

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 bestehende 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 gedruckten Linien 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".

Zuordnungen von Webadressen

Mithilfe von Webadressen-Zuordnungen können Google Sites-Nutzer ihre eigenen Domains einer Google Sites-Website zuordnen. Beispielsweise kann http://www.mydomainsite.com 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 Webadresse einer Website manuell ändern. Weitere Informationen findest du in diesem Hilfeartikel.

Zuordnungen der Webadresse einer Website abrufen

Wenn Sie die Zuordnungen der Webadresse für eine Website zurückgeben möchten, rufen Sie den Websiteeintrag oder ‐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 link mit rel='webAddressMapping' angezeigt. Im obigen Beispiel gibt es beispielsweise drei webAddressMappings, die auf die Website http://sites.google.com/site/myOtherTestSite verweisen.

Zuordnungen von Webadressen ändern

Hinweis: Bei allen GET-/POST/PUT-Vorgängen muss der Parameter with-mappings=true angegeben werden, wenn Sie mit Webadressenzuordnungen arbeiten. Wenn der Parameter nicht vorhanden ist, werden webAddressMappings in Websiteeinträgen (GET) nicht zurückgegeben und beim Aktualisieren/Entfernen (PUT) von Zuordnungen aus einem Eintrag nicht 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 beim Erstellen neuer Websites oder beim Aktualisieren der Metadaten einer Website. Der Parameter with-mappings=true muss im Website-Feed-URI enthalten sein. Hinweis: Um Adresszuordnungen zu aktualisieren, müssen Sie Websiteadministrator oder Domainadministrator (im Fall einer G Suite-gehosteten Website) sein.

In der folgenden Anfrage wird beispielsweise die http://www.mysitemapping.com-Zuordnung zu http://www.my-new-sitemapping.com aktualisiert und das http://www.mysitemapping2.com entfernt, indem der Link im 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: Webadressen-Zuordnungen können auch beim Erstellen/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.

Um den Aktivitätsfeed abzufragen, senden Sie eine HTTP-GET 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: Sie müssen ein Mitbearbeiter oder Inhaber der Website sein, um auf diesen Feed zugreifen zu können. Der Client muss den richtigen Authorization-Header senden und auf das Token verweisen, das unter Anfragen autorisieren abgerufen wurde.

Nach oben

Überarbeitungsfeed

Um den Überarbeitungsverlauf eines Inhaltseintrags abzurufen, senden Sie eine HTTP-GET an den Überarbeitungslink 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).

Um den Überarbeitungslink für eine bestimmte Seite, einen bestimmten Kommentar, einen Anhang oder ein Listenelement zu finden, rufen Sie zuerst den Eintrag aus dem Content-Feed unter Verwendung seiner CONTENT_ENTRY_ID ab. Der abgerufene Eintrag enthält ein <atom:link> zum Überarbeitungsfeed. 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: Sie müssen ein Mitbearbeiter oder Inhaber der Website sein, um auf diesen Feed zugreifen zu können. Ihr Client muss den richtigen Authorization-Header senden und auf das Token verweisen, das unter Anfragen autorisieren abgerufen wurde.

Nach oben

Inhaltsfeed

Inhalte abrufen

Der Content-Feed listet den aktuellen Content einer Website auf. Senden Sie eine authentifizierte GET-Anfrage an 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 mit Inhaltseinträgen auf der Website auflistet. Jeder Eintrag im Feed steht für eine andere Art von Inhaltseintrag, z. B. webpage, filecabinet, attachment oder comment. Das <category scheme="http://schemas.google.com/g/2005#kind">-Element bestimmt den Eintragstyp. Eine Liste der unterstützten kind-Werte finden Sie im Referenzhandbuch.

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

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. Über den Link "Weiter" können Sie durch den gesamten Content-Feed blättern:

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

Eine Erläuterung der in Atom gebräuchlichen Elemente finden Sie in der Referenz zum Google-Datenprotokoll. Im Folgenden werden Elemente beschrieben, die einen bestimmten Bezug zur klassischen Google Sites API haben. Bestimmte Arteinträge haben zusätzliche Attribute (die unten nicht aufgeführt sind), 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" ...>Verknüpfen Sie die Seite oder das 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 Eintragstyp.
<category term="http://schemas.google.com/g/2005#template" ...>label=template gibt an, dass der Eintrag eine Vorlage ist.
<gd:feedLink>Das Attribut href verweist auf die untergeordneten Elemente des übergeordneten Elements.
<sites:pageName>Webspace-Name der Seite; entspricht dem Namen in der URL der Seite.
<sites:revision>Aktuelle Versionsnummer.

Beispiele für Content-Feed-Suchanfragen

Sie können im Inhaltsfeed mit einigen der standardmäßigen Google Data API-Suchparameter sowie mithilfe von Parametern suchen, die für die klassische Google Sites API spezifisch sind. Ausführlichere Informationen und eine vollständige Liste der unterstützten Parameter finden Sie im Referenzhandbuch.

Bestimmte Eintragstypen abrufen

Verwenden Sie den Parameter kind, um nur einen bestimmten Eintragstyp abzurufen. 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 „,“. In diesem Beispiel werden filecabinet- und listpage-Einträge zurückgegeben:

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

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

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

Seitenvorlagen abrufen

Dieses Beispiel gibt nur template Seiten zurück:

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

Um alle Eintragstypen zurückzugeben und template-Seiten einzuschließen, verwenden Sie:

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

Seite über Pfad abrufen

Wenn Sie den relativen Pfad einer Seite innerhalb der Google Sites-Website kennen, können Sie diese Seite mithilfe des path-Parameters abrufen. 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 abzurufen (falls vorhanden):

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

Einschließlich Entwürfen oder gelöschter Einträge

Um Entwurfseinträge oder gelöschte Einträge einzubeziehen, 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 im gesamten Inhalt einer Website suchen möchten, verwenden Sie den Parameter q, um eine Volltextsuche durchzuführen:

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

Nach oben



Inhalte erstellen

Sie können neue Inhalte (Web-, Listen-, Ordner- oder Ankündigungsseiten) erstellen, indem Sie eine HTTP-POST an den Content-Feed senden:

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 unter der obersten Ebene der Website erstellt, enthält einige XHTML für den Seitentext und legt den Titel der Überschrift auf "Neuer Titel der Webseite" fest:

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 einer 201 Created und einer Kopie des Eintrags.

Elemente/Seiten unter benutzerdefinierten URL-Pfaden erstellen

Das vorherige Beispiel würde standardmäßig unter der URL http://sites.google.com/domainName/siteName/new-webpage-title erstellt werden und die Seitenüberschrift „Neuer Webseitentitel“ haben. Das <atom:title> wird für die URL zu new-webpage-title normalisiert. Wenn du den URL-Pfad einer Seite anpassen möchtest, kannst du das <sites:pageName>-Element festlegen.

In diesem Beispiel wird eine neue filecabinet mit der Seitenüberschrift "File Storage" erstellt, die Seite 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, um den URL-Pfad einer Seite zu benennen:

  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. Normalisierung besteht darin, Leerzeichen auf „-“ zu kürzen und zu minimieren und Zeichen zu entfernen, die nicht mit a-z, A-Z, 0-9, -, _ übereinstimmen.

So wird beispielsweise "Benutzerdefinierte_Seite2" vom Server akzeptiert.

Unterseiten erstellen

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

In diesem Beispiel wird unter einer übergeordneten Ankündigungsseite mit der Eintrags-ID PARENT_ENTRY_ID ein neuer announcement mit der Überschrift „Ankündigung“ erstellt. 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

Der Vorgang zum Erstellen einer Seitenvorlage entspricht dem Erstellen neuer Elemente/Seiten und dem Erstellen von Unterseiten. Der Unterschied besteht im Hinzufügen von category, wobei Begriff und Label jeweils auf "http://schemas.google.com/g/2005#template" bzw. "Vorlage" festgelegt sind.

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> einfügen, das rel='http://schemas.google.com/sites/2008#template' auf den Self-Link einer Seitenvorlage verweist.

In diesem Beispiel wird eine neue filecabinet-Seite aus einer vorhandenen Seitenvorlage erstellt, in der ein Ordner definiert wird.

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: Trotz einer Vorlage, in der eine <category> definiert wird, müssen Sie eine in Ihrem Eintrag angeben. Wenn du ein <content>-Element einfügst, wird es vom Server abgelehnt.

Dateien werden hochgeladen

Genau wie in Google Sites können Sie mit der API Anhänge zu Dateiablagenseiten und übergeordneten Seiten hochladen.

Wenn Sie einen Anhang für einen übergeordneten Anhang hochladen möchten, senden Sie eine HTTP-POST-Anfrage an die Contentfeed-URL:

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

Der POST-Text sollte eine mehrteilige MIME-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 werden soll. Weitere Informationen finden Sie unter Unterseiten erstellen.

Anhänge werden hochgeladen

Hier ist 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 einer (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 war, antwortet der Server mit einer 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 Wesentlichen handelt es sich dabei um Links zu anderen Dateien im Web, die Sie Ihren Ordnerlisten hinzufügen können. Diese Funktion ist analog zur Upload-Methode "Datei per 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 unter dem Ordner, auf den die ID FILECABINET_ENTRY_ID verweist, ein webattachment erstellt. Für den Titel und die optionale Beschreibung sind „GoogleLogo“ bzw. „netten 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>

Das POST erstellt in der Dateiablage des Nutzers einen Link, der auf das Bild unter "http://www.google.com/images/logo.gif" verweist.

Nach oben



Inhalte aktualisieren

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

Um sicherzustellen, dass Ihr Update die Änderungen eines anderen Clients nicht überschreibt, fügen Sie den ETag-Wert des ursprünglichen Eintrags hinzu. Dazu können Sie den ETag-Wert in einem HTTP-If-Match-Header angeben oder das gd:etag-Attribut des ursprünglichen Eintrags in den aktualisierten Eintrag einfügen. Untersuchen Sie das Attribut gd:etag des <entry>-Elements, um den ETag-Wert des ursprünglichen Eintrags zu ermitteln. Bei Medieneinträgen ist das ETag des Mediums möglicherweise im Attribut gd:etag des Links edit-media verfügbar.

Wenn Sie den Eintrag unabhängig davon aktualisieren möchten, ob eine andere Person ihn seit dem Abruf aktualisiert hat, verwenden Sie If-Match: * und fügen Sie das ETag nicht ein. Weitere Informationen zu ETags finden Sie im Referenzhandbuch für Google Data APIs.

Metadaten oder HTML-Inhalte eines Elements aktualisieren

Zum Aktualisieren der Metadaten oder HTML-Inhalte eines Eintrags senden Sie eine HTTP-PUT an den edit-Link des Eintrags.

Im folgenden Beispiel wird ein listpage-Eintrag (dargestellt durch seine ID ENTRY_ID) mit den folgenden Änderungen aktualisiert:

  • Der Titel wird in „Aktualisierte Inhalte“ geändert.
  • Aktualisierte HTML-Inhalte
  • Die erste Spaltenüberschrift der Liste wird in "Eigentümer" 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="Decription"/>
    <gs:column index="C" name="Completed"/>
  </gs:data>
  <sites:pageName>newPagePath</sites:pageName>
</entry>

Hinweis: Der vom Server zurückgegebene Eintrag enthält mehr Elemente als das obige Beispiel.

Inhalt eines Anhangs ersetzen

Im Folgenden finden Sie ein Beispiel dafür, wie Sie den Inhalt eines Anhangs ersetzen, aber seine Metadaten unverändert lassen. 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 ...

Metadaten und Inhalte von Anhängen werden aktualisiert

Im Folgenden finden Sie ein Beispiel für das gleichzeitige Aktualisieren der Metadaten eines Anhangs und seines Inhalts. Der Name des Anhangs wird in „Neuer Titel“ geändert und der Inhalt wird durch den Inhalt einer ZIP-Datei ersetzt. Da die Anfrage neuen Dateiinhalt 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 Sites-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>

Wurde der Eintrag erfolgreich gelöscht, antwortet der Server mit der HTTP-Anfrage 200 OK.

Soll ein Eintrag, der seit dem Abrufen von einem anderen Client geändert wurde, nicht gelöscht werden, 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 von einer anderen Person seit dem Abruf aktualisiert wurde, verwenden Sie If-Match: * und fügen Sie das ETag nicht ein. In diesem Fall müssen Sie den Eintrag vor dem Löschen nicht abrufen.

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

Nach oben



Anhänge herunterladen

Sobald ein Anhangeintrag vorhanden ist, können Sie die Datei herunterladen. Senden Sie dazu eine authentifizierte HTTP-GET an den src-Link <content> des Eintrags. Beispiel für den Inhaltslink 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 steht für eine Zugriffsrolle einer bestimmten Entität, entweder eines Nutzers, einer Gruppe von Nutzern, einer Domain oder dem Standardzugriff (eine öffentliche Website). Einträge werden nur für Entitäten mit explizitem Zugriff angezeigt. Auf dem Freigabebildschirm der Google Sites-Benutzeroberfläche wird im Bereich "Personen mit Zugriff" für jede E-Mail-Adresse ein Eintrag angezeigt. Daher werden Domainadministratoren nicht angezeigt, auch wenn sie impliziten Zugriff auf eine Website haben.

Rollen

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

  • reader – ein Betrachter (entspricht dem Lesezugriff).
  • writer – ein Mitbearbeiter (entspricht dem Lese-/Schreibzugriff).
  • owner: normalerweise der Administrator der Website (entspricht Lese-/Schreibzugriff)

Ebenen

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

  • Nutzer: Ein E-Mail-Adresswert, z. B. „nutzer@gmail.com“.
  • Gruppe: E-Mail-Adresse einer Google Groups-Gruppe, z. B. "gruppe@domain.com".
  • domain: ein G Suite-Domainname, z. B. "domain.com".
  • invite – Ein Nutzer, der zu der Website eingeladen wurde, aber noch nicht zur ACL der 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">). Mit diesem speziellen Bereich wird der Zugriff gesteuert, den jeder Nutzer standardmäßig auf einer öffentlichen Website hat.

Hinweis: Für Domains kann der Wert gAcl:role nicht auf „Inhaber“ festgelegt sein. Sie können nur Leser oder Autoren sein.

Informationen zum Umfang „Einladung“.

Die API gibt den Einladungsbereich zurück, wenn Sie der ACL 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 diese die Einladung annehmen können.

Mit dieser Einladungsmethode können Sie Nutzer ohne Google-Konto einladen, ohne dass Sie wissen, welche E-Mail-Adresse sie verwenden möchten. Solange die 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 möglicherweise mehrere Nutzer diese URL verwenden, um die Einladung anzunehmen. Dies kann nützlich sein, wenn Sie einen Nutzer oder eine Gruppe von Nutzern einladen.

Hinweis:Der Bereich „Einladung“ ist erst ab gdata-Version 1.4 verfügbar. Dies funktioniert nicht, wenn Sie explizit 1.3 oder niedriger angeben.

ACL-Feed abrufen

Der ACL-Feed kann zur Steuerung der Freigabeberechtigungen einer Website verwendet werden und 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).

Beachten Sie, dass jeder Eintrag im Websitefeed einen Link zu diesem Feed enthält:

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

Um die Freigabeberechtigungen einer Website abzurufen, senden Sie HTTP GET 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 einem 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. Um eine neue Rolle in den ACL-Feed einzufügen, 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 entsprechend konfiguriert ist, z.B. wenn die Freigabe außerhalb der Domain für G Suite-Domains aktiviert ist usw.

Im folgenden 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 einem erfolgreichen Einfügen werden 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 „Einladung“ einladen

Wenn Sie Nutzer hinzufügen, die kein Google-Konto haben, gibt die API eine URL zurück, die Sie den einzuladenden Nutzern zur Verfügung stellen müssen. Nach dem Klicken auf die URL können sie auf die Website zugreifen, indem sie sich mit einem bestehenden Konto anmelden oder ein neues Konto erstellen.

Eine erfolgreiche Einladung gibt ein 201 Created und einen neuen Eintrag mit der URL zurück, die Sie an den Nutzer übergeben 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 für eine Google-Gruppe oder 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, in der die Website gehostet wird. Beispielsweise kann http://sites.google.com/a/domain1.com/siteA nur die gesamte Website für domain1.com freigeben, nicht für domain2.com. Websites, die nicht auf 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. Dabei handelt es sich einfach um ein <link>-Element, dessen „rel“-Attribut auf „edit“ gesetzt ist. Im vorherigen 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'/>

Durch das folgende 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 werden entfernt

Um Berechtigungen für diesen Nutzer zu entfernen, senden Sie eine DELETE-Anfrage an denselben edit-Link, der auch 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 zuvor abgerufenen Feed oder Eintrag abrufen möchten, können Sie die Effizienz verbessern, indem Sie den Server anweisen, die Liste oder den Eintrag nur dann zu senden, wenn er sich seit dem letzten Abruf geändert hat.

Für diese Art von bedingten Abruf senden Sie eine HTTP-GET-Anfrage, die einen HTTP-If-None-Match-Header enthält. Geben Sie im Header das ETag der Liste oder des Eintrags an, das Sie im Attribut gd:etag des Elements <feed> oder <entry> finden.

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 erhält, prüft er, ob das angeforderte Element dasselbe ETag wie das angegebene ETag hat. Wenn die ETags übereinstimmen, hat sich das Element nicht geändert und der Server gibt entweder einen HTTP-Statuscode 304 Not Modified oder einen HTTP-Statuscode 412 Precodition Failed zurück. Beide Statuscodes zeigen an, dass das bereits abgerufene Element aktuell ist.

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

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

Batch-Verarbeitung

Mit Batchanfragen kann Ihr Client mehrere Vorgänge in einer 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 zum Aktualisieren, Löschen oder Abfragen des Content-Feeds verwenden würden. Wenn Sie beispielsweise eine Änderung aktualisieren, setzen Sie die <id> auf den edit-Link des betreffenden Eintrags. 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 Nachschlagen des entsprechenden Eintrags verwendet wird.

Um eine Batchanfrage zu senden, erstellen Sie einen Batchfeed und senden Sie eine HTTP-POST-Anfrage an den Batch-Link 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 für jeden Vorgang einen Ergebniseintrag:

 
<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