Protokollleitfaden

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

Zielgruppe

In diesem Dokument wird davon ausgegangen, dass Sie mit den allgemeinen Konzepten des Google Data APIs-Protokolls vertraut sind.

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 unter Verwendung von XML/HTTP mit Rohdaten. Nachdem Sie dieses Dokument gelesen haben, können Sie mehr über die Interaktion mit der API mithilfe unserer Clientbibliotheken erfahren. Lesen Sie dazu die sprachspezifischen Beispiele in den anderen Anleitungen in der linken Navigationsleiste.

Weitere Informationen zu den Materialien in diesem Handbuch

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.

Im Folgenden finden Sie die Informationen zum OAuth 2.0-Bereich 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 an das Google Sites Data API sollten Sie die Version 1.4 angeben. 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 auch als Abfrageparameter in der URL angeben. Nach Möglichkeit wird jedoch der HTTP-Header bevorzugt.

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

Nach oben

Website-Feed

Im Websitefeed können die Google Sites aufgelistet werden, deren Inhaber ein Nutzer ist oder für die er Leseberechtigungen hat. Außerdem kann der Titel einer vorhandenen Website geändert werden. Bei G Suite-Domains kann damit auch eine gesamte Website erstellt oder kopiert werden.

Websites auflisten

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
FeedparameterBeschreibung
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 werden in alphabetischer Reihenfolge aufgeführt.

Neue Websites erstellen

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

Neue Websites können bereitgestellt werden, indem eine HTTP-POST an den Websitefeed gesendet wird, 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 dann http://sites.google.com/a/beispiel.de/quelle-website/.

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

<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 die gleiche Weise dupliziert werden wie beim Erstellen einer neuen Website. Fügen Sie jedoch im Atom-Eintrag der POST-Anfrage einen <link> mit rel='source' hinzu, der auf den Sitefeed der zu kopierenden Website verweist. Dieser Link ist auf jeder kopierten Website zu finden. 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 obigen Anfrage wird die Website unter http://sites.google.com/a/beispiel.de/quelle-website/ kopiert.

Wichtige Punkte:

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

Metadaten einer Website aktualisieren

Wenn du den Titel oder die Zusammenfassung einer Website aktualisieren möchtest, sende eine HTTP-PUT-Anfrage an den edit-Link eines Websiteeintrags. Im folgenden Beispiel wird beispielsweise 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.

Websites von G Suite für Ihre Domain enthalten Kategoriemetadaten, 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. Siehe die fett formatierte 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. Siehe die fett formatierten Zeilen im folgenden Beispiel:

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

Webadressenzuordnungen

Mit Webadressenzuordnungen können Google Sites-Nutzer ihre eigenen Domains einer Google-Website zuordnen. Sie können beispielsweise http://www.mydomainsite.com anstelle von http://sites.google.com/a/domain.com/mysite verwenden. Je nachdem, wo Ihre Website gehostet wird, können Sie die Webadressenzuordnungen einer Website manuell ändern. Weitere Informationen finden Sie in diesem Hilfeartikel.

Webadressen-Zuordnungen einer Website abrufen

Wenn Sie die Zuordnungen von Webadressen 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 link mit rel='webAddressMapping' angezeigt. Im obigen Beispiel verweisen beispielsweise drei webAddressMappings auf die Website http://sites.google.com/site/myOtherTestSite.

Webadressen-Zuordnungen ändern

Hinweis: Bei allen GET/POST/PUT-Vorgängen muss bei Webadressenzuordnungen der Parameter with-mappings=true angegeben werden. Wenn der Parameter nicht vorhanden ist, werden webAddressMappings in Websiteeinträgen (GET) nicht 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, müssen Sie beim Erstellen neuer Websites oder beim Aktualisieren der Metadaten einer Website einfach einen solchen Link angeben, ändern oder entfernen. Der Parameter with-mappings=true muss in der URI des Website-Feeds enthalten sein. Hinweis: Um Adresszuordnungen zu aktualisieren, müssen Sie Website-Administrator oder bei einer von der G Suite gehosteten Website Domainadministrator sein.

Mit der folgenden Anfrage wird beispielsweise die http://www.mysitemapping.com-Zuordnung zu http://www.my-new-sitemapping.com aktualisiert und 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>

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 an die URL des Aktivitätsfeeds:

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 eine 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 benötigen Zugriff als Mitbearbeiter oder Inhaber der Website, 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

Feed mit Änderungen

Wenn du den Überarbeitungsverlauf für einen Inhaltseintrag abrufen möchtest, sende eine HTTP-GET an den Link zur Überarbeitung des Eintrags:

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
FeedparameterBeschreibung
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 Link zu den Versionen für eine bestimmte Seite, einen bestimmten Kommentar, einen bestimmten Anhang oder ein bestimmtes Listenelement finden möchten, rufen Sie zuerst den Eintrag aus dem Inhaltsfeed mit der CONTENT_ENTRY_ID ab. Der abgerufene Eintrag enthält einen <atom:link>-Wert für den Ü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 benötigen Zugriff als Mitbearbeiter oder Inhaber der Website, 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

Inhaltsfeed

Inhalte abrufen

Im Inhaltsfeed werden die aktuellen Inhalte einer Website aufgeführt. Sende eine authentifizierte GET-Anfrage an die folgende URL:

https://sites.google.com/feeds/content/domainName/siteName
FeedparameterBeschreibung
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 enthält. Jeder Eintrag im Feed repräsentiert einen anderen Inhaltstyp, z. B. webpage, filecabinet, attachment, comment usw. 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, abhängig von den Freigabeberechtigungen der Website. Wenn die Website nicht öffentlich ist, muss dein Client den richtigen Authorization-Header senden (wie im Beispiel oben) und auf das Token verweisen, das du unter Anfragen autorisieren erhalten hast.

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. Um durch den gesamten Content-Feed zu blättern, klicken Sie auf den Feed-Link "Weiter":

<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 Protocol. Elemente, die eine bestimmte Bedeutung für die klassische Google Sites API haben, werden unten beschrieben. Bestimmte Arten von Einträgen haben zusätzliche Attribute (unten nicht aufgeführt), andere hingegen nicht. Ein listitem-Eintrag kann beispielsweise <gs:field>-Elemente enthalten, ein webpage-Eintrag hingegen nicht.

ElementBeschreibung
<content ...>Der innere Text ist der HTML-Textkörper 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 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 des Eintrags.
<sites:pageName>Der Webspace-Name der Seite, der dem Namen in der URL der Seite entspricht.
<sites:revision>Aktuelle Versionsnummer.

Beispiele für Content-Feed-Abfragen

Sie können im Inhaltsfeed mit einigen der Standardabfrageparameter der Google Data API und denjenigen, die speziell für die klassische Sites API gelten, suchen. Weitere Informationen und eine vollständige Liste der unterstützten Parameter finden Sie im Referenzhandbuch.

Bestimmte Eintragstypen 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 /-/category-Abfragen für Google-Daten anstelle des kind-Parameters verwenden:

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

Seitenvorlagen abrufen

In diesem Beispiel werden nur template Seiten zurückgegeben:

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

Wenn Sie alle Eintragstypen zurückgeben und template-Seiten einbeziehen möchten, verwenden Sie Folgendes:

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 bestimmte Seite mit dem Parameter path 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 mit dem Parameter parent alle untergeordneten Einträge abrufen (falls vorhanden):

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

Auch 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 Inhaltsfeed:

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 durchzuführen:

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

Nach oben



Inhalte erstellen

Du kannst neue Inhalte (Webseiten, Listenseiten, Ordnerseiten, Ankündigungsseiten usw.) erstellen, indem du ein HTTP-POST an den Inhaltsfeed sendest:

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

Eine Liste der unterstützten Eintragstypen finden Sie im Referenzhandbuch im Abschnitt zum Parameter kind.

Neue Elemente/Seiten erstellen

In diesem Beispiel wird ein neuer webpage auf der obersten Ebene der Website erstellt, XHTML für den Seitenkörper eingefügt und der Titel der Überschrift auf „Neuer Webseitentitel“ 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>

Wenn der Vorgang erfolgreich war, antwortet der Server mit einer 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 den Seitentitel „Neuer Seitentitel“. Das heißt, <atom:title> wird für die URL auf 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 ein neuer filecabinet mit der Seitenüberschrift „Dateispeicher“ 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 Vorrangregeln 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. Normalisierung besteht darin, Leerzeichen auf „-“ zu entfernen und zu minimieren und Zeichen zu entfernen, die nicht mit a-z, A-Z, 0-9, -, _ übereinstimmen.

„Custom_Page2“ wäre beispielsweise eine vom Server akzeptierte URL.

Unterseiten erstellen

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

In diesem Beispiel wird unter einer übergeordneten Mitteilungsseite mit der Eintrags-ID PARENT_ENTRY_ID ein neues announcement mit der Überschrift „Mitteilung“ erstellt. XHTML-Inhalte für den Seitenkörper sind 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 entspricht dem Erstellen neuer Elemente/Seiten und dem Erstellen von Unterseiten. Der Unterschied besteht darin, dass die 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 kannst du eine neue Seite aus einer Vorlage instanziieren. Füge dazu ein <link>-Element hinzu, bei dem 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, die ein Ablagefach 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 eine <category> definiert ist, muss sie in Ihrem Eintrag enthalten sein. Wenn Sie ein <content>-Element angeben, wird es vom Server abgelehnt.

Dateien hochladen

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

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

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

Der POST-Textkörper sollte eine MIME-Mehrere-Teile-Anfrage sein, um den Dateiinhalt mit einem <atom:entry> zu kombinieren, das 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 den Upload einer PDF-Datei in einen Dateischrank 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, gibt der Server eine 201 Created und eine Kopie des neu erstellten Anhangseintrags zurück.

Anhang in einen Ordner hochladen

Wenn Sie einen Anhang in einen vorhandenen Ordner in einer filecabinet hochladen möchten, fügen Sie eine Kategorie mit dem Attribut „Termin“ hinzu, das auf den Namen des Ordners festgelegt ist:

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

Webanhänge

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

Hinweis: Webanhänge können nur in einem Aktenschrank erstellt werden. Sie können nicht auf andere Arten von Seiten hochgeladen werden.

In diesem Beispiel wird ein webattachment im Dateischrank erstellt, auf den über die ID FILECABINET_ENTRY_ID verwiesen wird. Der Titel und die (optionale) Beschreibung sind auf „GoogleLogo“ und „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>

Die POST erstellt einen Link im Ablageordner des Nutzers, 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 jeder Seite können mit einer einzigen PUT-Anfrage an den edit-Link bearbeitet werden. Der Anfragetext sollte einen Atom-Eintrag mit einer Beschreibung der aktualisierten Seite enthalten. Eine Ausnahme von dieser Regel ist ein Anhangseintrag, bei dem der Eintrag nur zum Aktualisieren der Metadaten des Anhangs verwendet werden kann. Um den Inhalt der angehängten Datei zu ändern, fügen Sie einfach die Rohdaten als Text einer PUT-Anfrage in den edit-media-Link des Anhangs ein. Mit einer MIME-Mehrere-Teile-Anfrage kannst du sowohl die Metadaten als auch den Inhalt der angehängten Datei gleichzeitig aktualisieren.

Fügen Sie den ETag-Wert des ursprünglichen Eintrags ein, um sicherzustellen, dass durch die Aktualisierung die Änderungen eines anderen Clients nicht überschrieben werden. 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 aufnehmen. Um den ETag-Wert des ursprünglichen Eintrags zu ermitteln, prüfen Sie das gd:etag-Attribut des <entry>-Elements. 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 durch Sie von jemand anderem aktualisiert wurde, verwenden Sie If-Match: * und geben Sie kein ETag an. Weitere Informationen zu ETags finden Sie im Referenzhandbuch für Google Data APIs.

Metadaten oder HTML-Inhalte eines Artikels aktualisieren

Wenn Sie die Metadaten oder den HTML-Inhalt eines Eintrags aktualisieren möchten, 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.
  • Aktualisierter HTML-Inhalt
  • Die erste Spaltenüberschrift der Liste wird in „Inhaber“ geändert.
  • Der URL-Pfad der Seite wird durch das Element <sites:pageName> 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 Beispiel oben.

Inhalt eines Anhangs ersetzen

Im folgenden Beispiel wird der Inhalt eines Anhangs ersetzt, die Metadaten bleiben jedoch unverändert. Da die Anfrage neue Inhalte enthält, wird der edit-media-Link 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 aktualisieren

Im folgenden Beispiel werden gleichzeitig die Metadaten und der Inhalt eines Anhangs aktualisiert. Der Name des Anhangs wird in „Neuer Titel“ geändert und sein 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 du das ETag für die Metadaten angibst, wird auch ein impliziter If-Match für die Medieninhalte angegeben, da jede Aktualisierung der Medieninhalte zu einer Änderung des ETags der Metadaten führt.

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 aus 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. Diese URL wird auch beim Aktualisieren der Metadaten oder des HTML-Inhalts eines Elements verwendet.

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 sicherstellen 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 mit dem ETag-Wert des ursprünglichen Eintrags hinzu. Sie können den ETag-Wert des ursprünglichen Eintrags anhand des Attributs gd:etag des <entry>-Elements ermitteln.

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

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

Nach oben



Anhänge herunterladen

Sobald du einen Anhangseintrag hast, kannst du die Datei herunterladen, indem du eine authentifizierte HTTP-GET an den <content>-Src-Link des Eintrags sendest. Beispiel für einen 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 stellt eine Zugriffsrolle eines bestimmten Elements dar, entweder eines Nutzers, einer Gruppe von Nutzern, einer Domain oder des Standardzugriffs (eine öffentliche Website). Einträge werden nur für Entitäten mit explizitem Zugriff angezeigt. Auf dem Bildschirm „Teilen“ der Google Sites-Benutzeroberfläche wird im Bereich „Personen mit Zugriff“ jeweils ein Eintrag für jede E-Mail-Adresse angezeigt. Domainadministratoren werden also nicht angezeigt, auch wenn sie impliziten Zugriff auf eine Website haben.

Rollen

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

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

Ebenen

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

  • user: E-Mail-Adresse, z. B. „user@gmail.com“.
  • group: E-Mail-Adresse einer Google-Gruppe, z. B. „gruppe@domain.com“.
  • domain – ein G Suite-Domainname, z. B. „domain.com“.
  • invite: Ein Nutzer, der zur Website eingeladen wurde, aber noch nicht der 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 Gültigkeitsbereich vom Typ „default“, der keinen Wert hat (z. B. <gAcl:scope type="default">). Mit diesem Gültigkeitsbereich wird der Zugriff gesteuert, den alle Nutzer standardmäßig auf eine öffentliche Website haben.

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

Informationen zum Umfang der Einladung

Die API gibt den Gültigkeitsbereich der Einladung 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 mitteilen müssen, damit sie die Einladung annehmen können.

Mit dieser Einladungsmethode können Sie Nutzer einladen, die keine Google-Nutzer sind, ohne 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. Dies kann nützlich sein, wenn Sie einen Nutzer oder eine Gruppe von Nutzern einladen.

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

ACL-Feed abrufen

Mit dem ACL-Feed können Sie die Freigabeberechtigungen einer Website 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 Websitefeed 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 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 einer 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 entsprechend konfiguriert ist, z.B. wenn die Freigabe außerhalb der Domain für G Suite-Domains aktiviert ist.

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 einer erfolgreichen Einfügung 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 Gültigkeitsbereich „Einladen“ einladen

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

Bei einer erfolgreichen Einladung wird eine 201 Created und ein neuer Eintrag mit der URL zurückgegeben, die du an den Nutzer weitergeben musst:

<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 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. Bei einer Website wie http://sites.google.com/a/domain1.com/siteA kann beispielsweise nur die gesamte Website für domain1.com freigegeben werden, nicht für domain2.com. Bei Websites, die nicht auf einer G Suite-Domain gehostet werden (z. B. http://sites.google.com/site/siteB), können keine Domains eingeladen werden.

Freigabeberechtigungen ändern

Wenn Sie einen ACL-Eintrag aktualisieren möchten, ändern Sie ihn nach Bedarf und senden Sie eine HTTP-PUT-Anfrage an den edit-Link des Eintrags. Das ist einfach ein <link>-Element, dessen „rel“-Attribut auf „edit“ festgelegt 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'/>

Im folgenden Snippet wird die Rolle von new_writer@gmail.com in „Leser“ 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

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

Besondere Themen

Feed oder Eintrag noch einmal abrufen

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

Für diese Art des bedingten Abrufs senden Sie eine HTTP-GET-Anfrage, die einen HTTP-If-None-Match-Header enthält. Geben Sie in der Kopfzeile 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, wird geprüft, ob der von Ihnen angeforderte Artikel dasselbe ETag wie das von Ihnen angegebene ETag hat. Wenn die ETags übereinstimmen, hat sich der Artikel 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 geben an, 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 es zurück.

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

Batch-Verarbeitung

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

Der Server führt so viele der angeforderten Änderungen wie möglich aus und gibt Statusinformationen zurück, anhand derer Sie den Erfolg oder Misserfolg der einzelnen Vorgänge beurteilen 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änge. Dieses Element entspricht der Anfrage-URL, die Sie normalerweise zum Aktualisieren, Löschen oder Abfragen des Inhaltsfeeds verwenden. Wenn Sie beispielsweise eine Änderung aktualisieren, setzen Sie <id> auf den edit-Link für den betreffenden Eintrag. Damit wird der Zieleintrag identifiziert. Neue Einträge haben keine <id>-Elemente, da sie noch nicht erstellt wurden. Du kannst stattdessen einen Stringwert in <batch:id> definieren, der in der Antwort des Servers zurückgegeben und zum Abrufen des entsprechenden Eintrags verwendet wird.

Wenn Sie eine Batchanfrage stellen möchten, erstellen Sie einen Batchfeed und senden Sie eine HTTP-POST 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 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