Mit der klassischen Google Sites API können Ihre Anwendungen auf Inhalte in einer Google Sites-Website zugreifen, sie veröffentlichen und ändern. Außerdem kann Ihre Anwendung eine Liste der letzten Aktivitäten anfordern, den Revisionsverlauf abrufen und Anhänge und Dateien hoch- und 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 Data API-Interaktionen mit rohem XML/HTTP und Erklärungen. Nachdem Sie dieses Dokument gelesen haben, können Sie in den sprachspezifischen Beispielen in den anderen Anleitungen in der linken Navigationsleiste mehr über die Interaktion mit der API mithilfe unserer Clientbibliotheken erfahren.
Eine Referenz für das Material in diesem Leitfaden finden Sie im Referenzleitfaden.
Anfragen autorisieren
Wenn Ihre Anwendung nicht öffentliche Nutzerdaten anfordert, muss sie ein Autorisierungstoken enthalten. Anhand dieses Tokens wird deine Anwendung Google gegenüber identifiziert.
Autorisierungsprotokolle
Ihre Anwendung muss zur Autorisierung von Anfragen OAuth 2.0 verwenden. Andere Autorisierungsprotokolle werden nicht unterstützt. Wenn deine Anwendung Über Google anmelden verwendet, werden einige Schritte der Autorisierung automatisch ausgeführt.
Anfragen mit OAuth 2.0 autorisieren
Anfragen an die Google Sites Data API in Bezug auf nicht öffentliche Nutzerdaten müssen durch einen 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:
- 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.
- 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.
- Wenn deine Anwendung Zugriff auf Nutzerdaten benötigt, bittet sie Google um einen bestimmten Zugriffsbereich.
- Dem Nutzer wird von Google ein Zustimmungsbildschirm angezeigt, auf dem er gebeten wird, deine Anwendung dazu zu autorisieren, einige seiner Daten abzufragen.
- Wenn der Nutzer zustimmt, erhält deine Anwendung von Google ein kurzlebiges Zugriffstoken.
- Die Anwendung fordert Nutzerdaten an, wobei das Zugriffstoken an die Anfrage angehängt wird.
- 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.
Version angeben
In jeder Anfrage, die Sie an die Google Sites Data API senden, sollte die Version 1.4 angegeben werden. Verwenden Sie den HTTP-Header GData-Version, um eine Versionsnummer anzugeben:
GData-Version: 1.4
Wenn Sie keine HTTP-Header festlegen können, können Sie v=1.4 alternativ als Abfrageparameter in der URL angeben. Der HTTP-Header wird jedoch nach Möglichkeit bevorzugt.
Hinweis: Die Clientbibliotheken stellen automatisch die entsprechenden Versionsheader bereit. Verwenden Sie den Abfrageparameter v=1.4 daher nicht, wenn Sie eine Clientbibliothek verwenden.
Website-Feed
Mit dem Website-Feed können Sie die Google Sites auflisten, die einem Nutzer gehören oder für die er Anzeigeberechtigungen hat, und den Titel einer vorhandenen Website ändern. Bei G Suite-Domains kann damit auch eine ganze 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| Feed parameter | Beschreibung |
|---|---|
domainName | site oder die Domain Ihrer in der 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/"CkUAQH4_eil7I2A9WxNaFk4.""> <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/"DkQGQHczfA9WxNaFk4.""> <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 alphabetisch geordnet.
Neue Websites erstellen
Hinweis: Diese Funktion ist nur für G Suite-Domains verfügbar.
Neue Websites können bereitgestellt werden, indem Sie eine HTTP-POST-Anfrage an den Websitefeed senden, 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 wäre http://sites.google.com/a/beispiel.de/quellwebsite/.
Wenn die Website erfolgreich erstellt wurde, antwortet der Server mit 201 Created.
Der Antwort-Eintrag enthält vom Server hinzugefügte Elemente wie 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/"DEECR38l7I2A9WxNaF0Q."">
<id>https://sites.google.com/feeds/site/example.com/source-site</id>
<updated>2009-12-02T23:31:06.184Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
<title>New Test Site</title>
<summary>A new site to hold memories</summary>
<link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/>
<link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/example.com/source-site"/>
<link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
<link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
<sites:siteName>source-site</sites:siteName>
<sites:theme>slate</sites:theme>
</entry>
Website kopieren
Hinweis: Diese Funktion ist nur für G Suite-Domains verfügbar.
Eine vorhandene Website kann auf dieselbe Weise dupliziert werden wie beim Erstellen einer neuen Website. Fügen Sie jedoch im Atom-Eintrag der POST-Anfrage ein <link> mit rel='source' ein, das auf den Website-Feed der zu kopierenden Website verweist. Jede kopierte Website enthält diesen Link. Hier ein Beispiel für das Duplizieren einer Website:
POST /feeds/site/example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom"> <link rel="http://schemas.google.com/sites/2008#source" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <title>Copy of New Test Site</title> <summary>A newer site to hold memories</summary> </entry>
Mit der obigen Anfrage wird die Website unter http://sites.google.com/a/beispiel.de/quellwebsite/ kopiert.
Wichtige Punkte:
- Es können nur Websites und Websitevorlagen kopiert werden, die dem authentifizierten Nutzer gehören.
- Eine Websitevorlage kann auch kopiert werden. Eine Website ist eine Vorlage, wenn auf der Seite „Google Sites-Einstellungen“ die Einstellung „Diese Website als Vorlage veröffentlichen“ aktiviert ist.
- Sie können eine Website aus einer anderen Domain kopieren, sofern Sie als Inhaber der Quellwebsite aufgeführt sind.
Metadaten einer Website aktualisieren
Wenn Sie den Titel oder die Zusammenfassung einer Website aktualisieren möchten, senden Sie eine HTTP-PUT-Anfrage an den edit-Link eines Websiteeintrags.
Im folgenden Beispiel wird der Titel der vorherigen Website in New Test Site2 und die Beschreibung in Newer description geändert.
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>New Test Site2</title> <summary>Newer description</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Category"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/source-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <sites:siteName>source-site</sites:siteName> </entry>
Kategorien hinzufügen
Hinweis: Diese Funktion ist nur für G Suite-Domains verfügbar.
G Suite for your Domain-Websites enthalten Kategorien-Metadaten, die zum Kategorisieren von Websites in Ihrer Domain nützlich sind. Wenn Sie Kategorien-Metadaten hinzufügen oder aktualisieren möchten, senden Sie eine HTTP-PUT-Anfrage an den edit-Link Ihres Websiteeintrags, die ein category-Tag enthält. Sehen Sie sich die fett formatierte Zeile im folgenden Beispiel 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/"DEECR38l7I2A9WxNaF0Q.""> <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 weitere <category>-Tags einfügen. Sehen Sie sich die fett gedruckten Zeilen im folgenden Beispiel an:
PUT /feeds/site/example.com/my-team-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <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“.
Webadresszuordnungen
Mit der Zuordnung von Webadressen können Sites-Nutzer ihre eigenen Domains einer Google-Website zuordnen. http://www.mydomainsite.com kann beispielsweise anstelle von http://sites.google.com/a/domain.com/mysite verwendet werden. Je nachdem, wo Ihre Website gehostet wird, können Sie die Zuordnungen der Webadressen einer Website manuell ändern. Weitere Informationen findest du in diesem Hilfeartikel.
Zuordnungen von Webadressen einer Website abrufen
Wenn Sie die Zuordnungen von Webadressen für eine Website abrufen 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/"DkQGQHczfA9WxNaFk4.""> <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 drei webAddressMapping-Elemente, die auf die Website http://sites.google.com/site/myOtherTestSite verweisen.
Zuordnungen von Webadressen ändern
Hinweis: Bei allen GET-/POST-/PUT-Vorgängen sollte der Parameter with-mappings=true angegeben werden, wenn Sie mit Webadressenzuordnungen arbeiten. Wenn der Parameter fehlt, wird webAddressMapping nicht in Websiteeinträgen (GET) zurückgegeben oder beim Aktualisieren/Entfernen (PUT) von Zuordnungen aus einem Eintrag berücksichtigt.
Wenn Sie eine Zuordnung hinzufügen, aktualisieren oder löschen möchten, geben Sie einen solchen Link einfach an, ändern oder entfernen Sie ihn, wenn Sie neue Websites erstellen oder die Metadaten einer Website aktualisieren. Der Parameter with-mappings=true muss im URI des Websitefeeds enthalten sein.
Hinweis: Um Adresszuordnungen zu aktualisieren, müssen Sie Websiteadministrator oder, im Fall einer in G Suite gehosteten Website, Domainadministrator sein.
Mit der folgenden Anfrage wird beispielsweise die Zuordnung von http://www.mysitemapping.com zu http://www.my-new-sitemapping.com aktualisiert und http://www.mysitemapping2.com entfernt, indem der Link aus dem Eintrag weggelassen wird:
PUT /feeds/site/domainName?with-mappings=true HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry gd:etag="W/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel='webAddressMapping' href='www.my-new-sitemapping.com'> <!-- missing mapping2 will be deleted --> <link rel='webAddressMapping' href='http://www.myothermapping.org'> </entry>
Hinweis: Webadressenzuordnungen können auch beim Erstellen oder Kopieren einer Website angegeben werden.
Aktivitätsfeed
Sie können die letzten Aktivitäten (Änderungen) einer Website abrufen, indem Sie den Aktivitätsfeed abrufen. Jeder Eintrag im Aktivitätsfeed enthält Informationen zu einer Änderung, die an der Website vorgenommen wurde.
Wenn Sie den Aktivitätsfeed abfragen möchten, senden Sie eine HTTP-GET-Anfrage an die URL des Aktivitätsfeeds:
https://sites.google.com/feeds/activity/domainName/siteName
| Feed parameter | Beschreibung |
|---|---|
domainName | site oder die Domain Ihrer in der G Suite gehosteten Domain (z.B. example.com). |
siteName | Der Webspace-Name Ihrer Website. Sie finden ihn in der URL der Website (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/"CU4GQ3szfSl7ImA9WxNRFUg.""> <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/"CU8DQn45fyl7ImA9WxNRFUg.""> <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/"CU8AR3s4cSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/127448462987345884</id> <updated>2009-09-10T03:37:26.539Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#creation" label="creation"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User3 created <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/127448462987345884"/> <author> <name>User3</name> <email>user3@gmail.com</email> </author> </entry> </feed>
Hinweis: Für den Zugriff auf diesen Feed müssen Sie Mitbearbeiter oder Inhaber der Website sein.
Ihr Client muss den richtigen Authorization-Header senden und auf das in Anfragen autorisieren erhaltene Token verweisen.
Überarbeitungsfeed
Wenn Sie den Überarbeitungsverlauf für einen beliebigen Inhaltseintrag abrufen möchten, senden Sie eine HTTP-GET-Anfrage an den Überarbeitungslink des Eintrags:
https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
| Feed parameter | Beschreibung |
|---|---|
domainName | site oder die Domain Ihrer in der G Suite gehosteten Domain (z.B. example.com). |
siteName | Der Webspace-Name Ihrer Website. Sie finden ihn in der URL der Website (z. B. myCoolSite). |
Wenn Sie den Link zu den Überarbeitungen für eine bestimmte Seite, einen bestimmten Kommentar, eine bestimmte Anlage oder ein bestimmtes Listenelement finden möchten, rufen Sie zuerst den Eintrag aus dem Content-Feed mit seiner CONTENT_ENTRY_ID ab. Der abgerufene Eintrag enthält einen <atom:link> für den Revisionsfeed.
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/"CU4GQmA9WxNRFUg.""> <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&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/"CU8DQ388eSl7ImA9WxNRFUg.""> <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&rev1=1"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>1</sites:revision> </entry> </feed>
Hinweis: Für den Zugriff auf diesen Feed müssen Sie Mitbearbeiter oder Inhaber der Website sein.
Ihr Client muss den richtigen Authorization-Header senden und auf das in Anfragen autorisieren beschriebene Token verweisen.
Inhaltsfeed
Inhalte abrufen
Im Contentfeed werden die aktuellen Inhalte einer Website aufgeführt. Senden Sie eine authentifizierte GET-Anfrage an die folgende URL:
https://sites.google.com/feeds/content/domainName/siteName
| Feed parameter | Beschreibung |
|---|---|
domainName | site oder die Domain Ihrer in der G Suite gehosteten Domain (z.B. example.com). |
siteName | Der Webspace-Name Ihrer Website. Sie finden ihn in der URL der Website (z. B. myCoolSite). |
Das Ergebnis ist ein Feed, in dem die erste Seite der Inhaltseinträge auf der Website aufgeführt ist. Jeder Eintrag im Feed stellt einen anderen Inhaltstyp dar, z. B. webpage, filecabinet, attachment oder comment. Das Element <category scheme="http://schemas.google.com/g/2005#kind"> bestimmt den Typ des Eintrags. Eine Liste der unterstützten kind-Werte finden Sie im Referenzhandbuch.
Hinweis: Für diesen Feed ist je nach Freigabeberechtigungen der Website möglicherweise eine Authentifizierung erforderlich.
Wenn die Website nicht öffentlich ist, muss Ihr Client den richtigen Authorization-Header (siehe Beispiel oben) senden und auf das in Anfragen autorisieren abgerufene Token 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/"Ck8GQXk7fil7ImA9WxNSFk0.""> <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/"CkMBQH08fCl7ImA9WxNSFk0.""> <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/"AkYHQ3ozcCl7ImA9WxJaE08.""> <id>https://sites.google.com/feeds/content/domainName/siteName/1265948545471894517</id> <updated>2009-08-03T19:35:32.488Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T19:35:32.488Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>files</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="alternate" type="text" href="https://sites.google.com/domainName/siteName/files"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/12671894517"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <gd:feedLink href="httpn://sites.google.com/feeds/content/domainName/siteName?parent=12671894517"/> <sites:pageName>files</sites:pageName> <sites:revision>1</sites:revision> </entry> ... </feed>
Hinweis: Dies sind nur die ersten Ergebnisse. Wenn Sie den gesamten Inhaltsfeed durchblättern möchten, folgen Sie dem Link „next“ (Weiter) des Feeds:
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
Eine Erläuterung der gemeinsamen Elemente für Atom finden Sie in der Google Data Protocol-Referenz.
Im Folgenden werden Elemente beschrieben, die für die klassische Sites API eine bestimmte Bedeutung haben. Einige „kind“-Einträge haben zusätzliche Eigenschaften (die unten nicht aufgeführt sind), andere nicht. Ein listitem-Eintrag kann beispielsweise <gs:field>-Elemente haben, ein webpage-Eintrag jedoch nicht.
| Element | Beschreibung |
|---|---|
<content ...> | Der innere Text ist der HTML-Text der Seite. Bei einigen Einträgen (z.B. Anhängen) enthält dieses Element ein src-Attribut, das auf die Datei verweist. |
<link rel="alternate" ...> | Link zur Seite oder zum Element in Google Sites. |
<link rel="http://schemas.google.com/sites/2008#revision" ...> | Das href-Attribut verweist auf den Revisionsfeed des Eintrags. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | Das Attribut href verweist auf den übergeordneten Eintrag des Eintrags. |
<link rel="http://schemas.google.com/sites/2008#template" ...> | Das Attribut href verweist auf die Vorlagenseite des Eintrags. |
<category scheme="http://schemas.google.com/g/2005#kind" ...> | label ist der Typ des Eintrags. |
<category term="http://schemas.google.com/g/2005#template" ...> | label=template 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> | Webspace-Name der Seite, entsprechend dem Namen in der URL der Seite. |
<sites:revision> | Aktuelle Revisionsnummer. |
Beispiele für Content-Feed-Abfragen
Sie können den Content-Feed mit einigen Standard-Abfrageparametern der Google Data API und den spezifischen Parametern der klassischen Sites API durchsuchen. Weitere Informationen und eine vollständige Liste der unterstützten Parameter finden Sie im Referenzhandbuch.
Bestimmte Arten von Einträgen abrufen
Wenn Sie nur einen bestimmten Eintragstyp abrufen möchten, verwenden Sie den Parameter kind. Dieses Beispiel gibt nur webpage-Einträge zurück:
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 anstelle des Parameters kind das Standardformat für eine Google Data-/-/category-Abfrage 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 nach Pfad abrufen
Wenn Sie den relativen Pfad einer Seite in der Google-Website kennen, können Sie mit dem Parameter path diese Seite 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 (falls vorhanden) abrufen:
GET /feeds/content/domainName/siteName?parent=CONTENT_ENTRY_ID
Entwürfe oder gelöschte Einträge einbeziehen
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 Entragseinträge im Content-Feed:
GET /feeds/content/domainName/siteName?include-drafts=true
Volltextsuche
Wenn Sie die gesamte Website durchsuchen möchten, verwenden Sie den Parameter q für eine Volltextsuche:
GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for
Inhalte erstellen
Neue Inhalte (Webseiten, Listenseiten, Ablageseiten, Ankündigungsseiten usw.) können durch Senden eines HTTP-POST an den Content-Feed erstellt werden:
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 ein neuer webpage auf der obersten Ebene der Website erstellt, der XHTML für den Seiteninhalt enthält und den Überschriftentitel auf „New WebPage Title“ (Neuer Webseitentitel) festlegt:
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 erfolgreicher Ausführung antwortet der Server mit 201 Created und einer Kopie des Eintrags.
Elemente/Seiten unter benutzerdefinierten URL-Pfaden erstellen
Standardmäßig würde das vorherige Beispiel unter der URL http://sites.google.com/domainName/siteName/new-webpage-title erstellt und die Seitenüberschrift „New Webpage Title“ (Neuer Webseitentitel) verwendet. Das bedeutet, dass <atom:title> für die URL auf new-webpage-title normalisiert wird.
Wenn Sie den URL-Pfad einer Seite anpassen möchten, können Sie das <sites:pageName>-Element festlegen.
In diesem Beispiel wird eine neue filecabinet mit der Seitenüberschrift „File Storage“ erstellt. Die Seite wird jedoch unter der URL http://sites.google.com/domainName/siteName/files erstellt, da das Element <sites:pageName> angegeben ist.
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:
<sites:pageName>, falls vorhanden. Mussa-z, A-Z, 0-9, -, _entsprechen.<atom:title>darf nicht null sein, wenn „pageName“ nicht vorhanden ist. Bei der Normalisierung werden Leerzeichen auf „-“ reduziert und zusammengefasst sowie Zeichen entfernt, die nicht mita-z, A-Z, 0-9, -, _übereinstimmen.
Beispiel: „Custom_Page2“ würde vom Server akzeptiert.
Unterseiten erstellen
Wenn Sie untergeordnete Seiten unter einer übergeordneten Seite erstellen möchten, fügen Sie in Ihrem neuen Atom-Eintrag ein <link rel="http://schemas.google.com/sites/2008#parent"> ein. Legen Sie das href-Attribut des Links auf den Self-Link des übergeordneten Eintrags fest.
In diesem Beispiel wird ein neues announcement mit der Überschrift „announcement“ unter einer übergeordneten Ankündigungsseite mit der Eintrags-ID PARENT_ENTRY_ID erstellt. XHTML-Inhalte für den Seiteninhalt 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 funktioniert genauso wie das Erstellen neuer Elemente/Seiten und Erstellen von Unterseiten. Der Unterschied besteht darin, dass das category mit dem Begriff und dem Label auf „http://schemas.google.com/g/2005#template“ bzw. „template“ festgelegt wird.
In diesem Beispiel wird eine neue webpage-Vorlage erstellt.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <category scheme="http://schemas.google.com/g/2005#labels" term="http://schemas.google.com/g/2005#template" label="template"/> <title>Webpage Template</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div> </content> </entry>
Seiten aus einer Vorlage erstellen
Ähnlich wie beim Erstellen von Seitenvorlagen können Sie eine neue Seite aus einer Vorlage instanziieren, indem Sie ein <link> mit rel='http://schemas.google.com/sites/2008#template' einfügen, das auf den Self-Link einer Seitenvorlage verweist.
In diesem Beispiel wird eine neue filecabinet-Seite aus einer vorhandenen Seitenvorlage erstellt, in der ein Aktenschrank definiert ist.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>File Cabinet Page From Template</title> <link rel='http://schemas.google.com/sites/2008#template' type='application/atom+xml' href='https://sites.google.com/feeds/content/domainName/siteName/ENTRY_ID'/> </entry>
Hinweis: Auch wenn in einer Vorlage ein <category> definiert ist, muss er in Ihrem Eintrag enthalten sein. Wenn Sie ein <content>-Element einfügen, wird es vom Server abgelehnt.
Dateien hochladen
Genau wie in Google Sites können Sie mit der API Anhänge auf Seiten mit Dateischränken und übergeordneten Seiten hochladen.
Wenn Sie einen Anhang für ein übergeordnetes Element hochladen möchten, senden Sie eine HTTP-POST-Anfrage an die URL des Content-Feeds:
https://sites.google.com/feeds/content/domainName/siteName
Der POST-Text sollte eine MIME-Multipart-Anfrage sein, um Dateiinhalte mit einem <atom:entry> zu kombinieren, das die Metadaten des Anhangs enthält. Der <atom:entry> sollte auf den Self-Link des übergeordneten Eintrags verweisen, um anzugeben, wo der Anhang erstellt wird.
Weitere Informationen finden Sie unter Unterseiten erstellen.
Anhänge werden hochgeladen
Hier sehen Sie ein Beispiel für das Hochladen einer PDF-Datei in ein Ablagefach mit der ID PARENT_ENTRY_ID. Der Anhang wird mit dem Titel „PDF-Datei“ und der optionalen Beschreibung „HR-Paket“ erstellt.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 7221984 Content-Type: multipart/related; boundary=END_OF_PART --END_OF_PART Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#attachment" label="attachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/> <title>PDF File</title> <summary>HR packet</summary> </entry> --END_OF_PART Content-Type: application/pdf ... pdf contents here ... --END_OF_PART--
Wenn der Upload erfolgreich ist, antwortet der Server mit 201 Created und einer Kopie des neu erstellten Anhangseintrags.
Anhang in einen Ordner hochladen
Wenn Sie einen Anhang in einen vorhandenen Ordner in einem filecabinet hochladen möchten, fügen Sie eine Kategorie mit dem Attribut „term“ ein, das auf den Namen des Ordners festgelegt ist:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">Webanhänge
Webanhänge sind spezielle Arten von Anhängen. Im Grunde sind es Links zu anderen Dateien im Web, die Sie Ihren Dateischrankeinträgen hinzufügen können. Diese Funktion entspricht der Uploadmethode „Datei über URL hinzufügen“ in der Google Sites-Benutzeroberfläche.
Hinweis: Webanhänge können nur in einem Ablagefach erstellt werden. Sie können nicht auf andere Seitentypen hochgeladen werden.
In diesem Beispiel wird ein webattachment unter dem Aktenschrank erstellt, auf den mit der ID FILECABINET_ENTRY_ID verwiesen wird.
Der Titel und die (optionale) Beschreibung sind auf „GoogleLogo“ bzw. „schöne Farben“ festgelegt.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: application/atom+xml Content-Length: 531 <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webattachment" label="webattachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/FILECABINET_ENTRY_ID"/> <title>GoogleLogo</title> <summary>nice colors</summary> <content type="image/gif" src="http://www.google.com/images/logo.gif"></content> </entry>
Mit POST wird im Dateischrank des Nutzers ein Link zum Bild unter „http://www.google.com/images/logo.gif“ erstellt.
Inhalte aktualisieren
Die Metadaten (Titel, pageName usw.) und der Seiteninhalt einer beliebigen Seite können mit einer einzelnen PUT-Anfrage an den Link edit bearbeitet werden.
Der Anfragetext sollte einen Atom-Eintrag enthalten, der die aktualisierte Seite beschreibt. Die Ausnahme von dieser Regel ist ein Anhangseintrag, der nur zum Aktualisieren der Metadaten des Anhangs verwendet werden kann.
Wenn Sie den Inhalt der angehängten Datei ändern möchten, fügen Sie die Rohdaten einfach als Text einer PUT-Anfrage an den edit-media-Link des Anhangs ein. Sie können auch sowohl die Metadaten als auch den Inhalt der angehängten Datei gleichzeitig aktualisieren, indem Sie eine MIME-Multipart-Anfrage verwenden.
Wenn Sie sichergehen möchten, dass Ihr Update die Änderungen eines anderen Clients nicht überschreibt, geben Sie den ETag-Wert des ursprünglichen Eintrags an. 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. Um den ETag-Wert des ursprünglichen Eintrags zu ermitteln, prüfen Sie das Attribut gd:etag des Elements <entry>.
Bei Media-Einträ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 er seit dem Abrufen von einer anderen Person aktualisiert wurde, verwenden Sie If-Match: * und lassen Sie das ETag weg. 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-Anfrage an den edit-Link des Eintrags.
Im Folgenden sehen Sie ein Beispiel für die Aktualisierung eines listpage-Eintrags (dargestellt durch seine ID ENTRY_ID) mit den folgenden Änderungen:
- Der Titel wird in „Aktualisierte Inhalte“ geändert.
- Aktualisierte HTML-Inhalte
- Die erste Spaltenüberschrift der Liste wird in „Inhaber“ geändert.
- Der URL-Pfad der Seite wird durch das
<sites:pageName>-Element geändert.
PUT /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 816 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CEEBRn0ymA9WxJWEUw.""> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listpage" label="listpage"/> <title>Updated Title</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div> </content> <gs:worksheet name="listpage"/> <gs:header row="1"/> <gs:data startRow="2"> <gs:column index="A" name="Owner"/> <gs:column index="B" name="Description"/> <gs:column index="C" name="Completed"/> </gs:data> <sites:pageName>newPagePath</sites:pageName> </entry>
Hinweis:Der vom Server zurückgegebene Eintrag enthält mehr Elemente als das Beispiel oben.
Inhalt einer Anlage ersetzen
Im Folgenden finden Sie ein Beispiel dafür, wie Sie den Inhalt eines Anhangs ersetzen, seine Metadaten jedoch unverändert lassen. 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 ...
Anhangsmetadaten und -inhalte aktualisieren
Im Folgenden finden Sie ein Beispiel für die gleichzeitige Aktualisierung der Metadaten und des Inhalts eines Anhangs. Der Name des Anhangs wird in „Neuer Titel“ geändert und sein Inhalt wird durch den Inhalt einer ZIP-Datei ersetzt. Da die Anfrage neue Dateiinhalte enthält, wird der edit-media-Link des Anhangseintrags verwendet.
Wenn Sie das ETag für die Metadaten angeben, wird auch ein implizites If-Match für die Media-Inhalte bereitgestellt, da sich das ETag der Metadaten bei jeder Aktualisierung der Media-Inhalte ä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
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. Dies ist dieselbe URL, die beim Aktualisieren der Metadaten oder des HTML-Inhalts eines Artikels verwendet wird.
DELETE /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> If-Match: <ETag or * here>
Wenn der Eintrag erfolgreich gelöscht wurde, antwortet der Server mit einem HTTP-Code 200 OK.
Wenn Sie sichergehen möchten, dass Sie keinen Eintrag löschen, der seit dem Abrufen von einem anderen Client geändert wurde, fügen Sie einen HTTP-If-Match-Header mit dem ETag-Wert des ursprünglichen Eintrags ein. Sie können den ETag-Wert des ursprünglichen Eintrags ermitteln, indem Sie das Attribut gd:etag des Elements <entry> untersuchen.
Wenn Sie den Eintrag löschen möchten, unabhängig davon, ob er seit dem Abrufen von einer anderen Person aktualisiert wurde, verwenden Sie If-Match: * und lassen Sie das ETag weg. 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.
Anhänge herunterladen
Sobald Sie einen Anhangseintrag haben, können Sie die Datei herunterladen, indem Sie eine authentifizierte HTTP-GET-Anfrage an den <content>-Quelllink des Eintrags senden. Beispiel für einen Inhaltslink in einem PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
ACL-Feed
Übersicht über Freigabeberechtigungen (ACLs)
Jeder ACL-Eintrag im ACL-Feed stellt eine Zugriffsrolle einer bestimmten Einheit dar, entweder eines Nutzers, einer Nutzergruppe, einer Domain oder des Standardzugriffs (einer öffentlichen Website). Einträge werden nur für Elemente mit explizitem Zugriff angezeigt. Für jede E-Mail-Adresse im Bereich „Personen mit Zugriff“ auf dem Freigabebildschirm der Google Sites-Benutzeroberfläche wird ein Eintrag angezeigt. Domainadministratoren werden daher nicht angezeigt, auch wenn sie impliziten Zugriff auf eine Website haben.
Rollen
Das Rollenelement stellt eine Zugriffsebene dar, die eine Entität haben kann. Das Element gAcl:role kann vier Werte haben:
- reader: Ein Betrachter (entspricht dem schreibgeschützten Zugriff).
- Autor: Ein Mitbearbeiter (entspricht Lese-/Schreibzugriff).
- Inhaber: In der Regel der Websiteadministrator (entspricht Lese-/Schreibzugriff).
Bereiche
Das Bereichselement stellt die Entität dar, die diese Zugriffsebene hat. Es gibt fünf mögliche Typen des Elements gAcl:scope:
- user: ein E-Mail-Adresswert, z. B. „user@gmail.com“.
- group: Eine Google Groups-E-Mail-Adresse, z. B. „group@domain.com“.
- domain: Ein G Suite-Domainname, z. B. „domain.com“.
- Einladung: Ein Nutzer, der zur Website eingeladen wurde, aber noch nicht zur ACL für die Website hinzugefügt wurde. (Nicht verfügbar, wenn gdata 1.3 oder niedriger angegeben ist.)
- default: Es gibt nur einen möglichen Bereich vom Typ „default“, der keinen Wert hat (z. B.
<gAcl:scope type="default">). Dieser Bereich steuert den Zugriff, den jeder Nutzer standardmäßig auf eine öffentliche Website hat.
Hinweis: Für Domains kann der Wert gAcl:role nicht auf „Inhaberzugriff“ festgelegt werden. Sie können nur Leser oder Autoren sein.
Informationen zum Bereich „Einladen“
Die API gibt den Einladungsbereich zurück, wenn Sie der ACL einen oder mehrere Nutzer hinzufügen, die noch kein Google-Konto haben. Die API gibt eine URL mit einem eingebetteten Token zurück, die Sie den eingeladenen Nutzern zur Verfügung stellen müssen, damit sie die Einladung annehmen können.
Mit dieser Einladungsmethode können Sie Nutzer einladen, die keine Google-Konten haben, ohne vorher zu wissen, welche E-Mail-Adresse sie verwenden möchten. Solange Nutzer auf die Einladungs-URL mit dem eingebetteten Token klicken, können sie sich mit einer beliebigen E‑Mail-Adresse für den Zugriff registrieren. Außerdem können mehrere Nutzer diese URL verwenden, um die Einladung anzunehmen. Das ist nützlich, wenn Sie einen einzelnen Nutzer oder eine Gruppe von Nutzern einladen.
Hinweis:Der Bereich „invite“ ist nur in gdata-Version 1.4 und höher verfügbar. Das 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 die folgende URI zugänglich:
https://sites.google.com/feeds/acl/site/domainName/siteName
| Feed parameter | Beschreibung |
|---|---|
domainName | site oder die Domain Ihrer in der G Suite gehosteten Domain (z.B. example.com). |
siteName | Der Webspace-Name Ihrer Website. Sie finden ihn in der URL der Website (z. B. myCoolSite). |
Jeder Eintrag im Website-Feed enthält einen Link zu diesem Feed:
<link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
Wenn Sie die Freigabeberechtigungen einer Website abrufen möchten, senden Sie eine HTTP-GET-Anfrage an den ACL-Feed-URI:
GET /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
Der Server antwortet mit 200 OK und einem Feed mit ACL-Einträgen:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008"
xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms"
xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005"
xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/acl/site/domainName/siteName</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<title>Acl</title>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<generator version="1" uri="http://sites.google.com">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry>
<id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40gmail.com</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/>
<link rel="edit" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/>
<gAcl:scope type="user" value="userA@google.com"/>
<gAcl:role value="owner"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/>
<link rel="edit" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/>
<gAcl:scope type="user" value="userB@gmail.com"/>
<gAcl:role value="writer"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/>
<link rel="edit" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/>
<gAcl:scope type="user" value="userC@gmail.com"/>
<gAcl:role value="reader"/>
</entry>
...
</feed>
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 ACLs für die Freigabe sind möglicherweise nur möglich, wenn die Domain so konfiguriert ist, dass solche Berechtigungen zulässig sind (z.B. wenn die Freigabe außerhalb der Domain für G Suite-Domains aktiviert ist).
In diesem Beispiel wird der Website ein neuer Mitbearbeiter (Autor) hinzugefügt:
POST /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
Bei erfolgreichem Einfügen werden ein 201 Created und der neue Eintrag zurückgegeben:
<entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com"/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
Nutzer über den Bereich „invite“ 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. Nachdem sie auf die URL geklickt haben, können sie auf die Website zugreifen, indem sie sich mit einem vorhandenen Konto anmelden oder ein neues Konto erstellen.
Bei einer erfolgreichen Einladung wird 201 Created zurückgegeben und ein neuer Eintrag, der die URL enthält, die Sie an den Nutzer weitergeben müssen:
<entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="http://schemas.google.com/sites/2008#invite" type="text/html"href="domainName/siteName?invite=inviteToken"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_invite%40example.com"/> <gAcl:role value='writer'/> <gAcl:scope type='invite' value='new_invite%40example.com'/> </entry>
Freigabe auf Gruppen- und Domainebene
Ähnlich wie beim Freigeben 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.
Beim Teilen mit einer Gruppen-E-Mail-Adresse geschieht Folgendes:
<gAcl:scope type="group" value="group@example.com"/>
Für eine gesamte Domain freigeben:
<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. Beispiel: Für die Website http://sites.google.com/a/domain1.com/siteA kann nur die gesamte Website für domain1.com freigegeben werden, nicht für domain2.com. Für 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. Dieser ist einfach ein <link>-Element, dessen „rel“-Attribut auf „edit“ gesetzt ist. Im vorherigen Beispiel lautet der Link so:
<link rel='edit' type='application/atom+xml'
href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>Im Snippet unten 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 entfernen
Wenn Sie die Berechtigungen für diesen Nutzer entfernen möchten, senden Sie eine DELETE-Anfrage an denselben edit-Link, der für die PUT-Anfrage verwendet wurde:
DELETE /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
Der Server antwortet mit 200 OK.
Spezielle Themen
Feed oder Eintrag noch einmal abrufen
Wenn Sie einen Feed oder Eintrag abrufen möchten, den Sie bereits zuvor abgerufen haben, können Sie die Effizienz verbessern, indem Sie dem Server mitteilen, dass er die Liste oder den Eintrag nur senden soll, wenn er sich seit dem letzten Abruf geändert hat.
Senden Sie dazu eine HTTP-GET-Anfrage mit einem HTTP-If-None-Match-Header. Geben Sie im Header das ETag der Liste oder des Eintrags an. Sie finden es im Attribut gd:etag des Elements <feed> oder <entry>.
Beispiel für die Verwendung des Website-Feeds:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
Wenn der Server diese Anfrage empfängt, wird geprüft, ob der angeforderte Artikel dasselbe ETag wie das von Ihnen angegebene ETag hat. Wenn die ETags übereinstimmen, hat sich das Element nicht geändert und der Server gibt entweder den HTTP-Statuscode 304 Not Modified oder den HTTP-Statuscode 412 Precodition Failed zurück. Beide Statuscodes weisen darauf hin, dass das Element, das Sie bereits abgerufen haben, auf dem neuesten Stand ist.
Wenn die ETags nicht übereinstimmen, wurde das Element seit dem letzten Aufruf 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 Batch Processing with Google Data APIs.
Jeder Vorgang in einem Batch-Feed 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 Inhaltsfeeds verwenden.
Wenn Sie beispielsweise eine Änderung aktualisieren, legen Sie <id> auf den edit-Link für den entsprechenden Eintrag fest.
Damit wird der Zieleintrag identifiziert. Neue Einträge haben keine <id>-Elemente, da sie noch nicht erstellt wurden. Stattdessen können Sie einen Stringwert in <batch:id> definieren, der in der Antwort des Servers zurückgegeben und zum Suchen des entsprechenden Eintrags verwendet wird.
Wenn Sie eine Batchanfrage stellen möchten, erstellen Sie einen Batchfeed und senden Sie eine HTTP-POST-Anfrage an den Batchlink des Feeds:
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml"
href="https://sites.google.com/feeds/content/site/siteName/batch"/>
Das folgende Beispiel zeigt, wie Sie einen Webseiten-Eintrag 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=""YDgpeyI.""> <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=""YassseyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id> <batch:operation type='delete'/> </entry> </feed>
Der zurückgegebene Feed enthält einen Ergebniseintrag für jeden Vorgang:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<updated>2009-11-10T22:44:08.369Z</updated>
<title>Batch Feed</title>
<entry gd:etag=""YDgpsdfeyI."">
<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=""YDsseyI."">
<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=""YDkpeyI."">
<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>