L'API Google Sites classique permet à vos applications d'accéder au contenu d'un site Google, de le publier et de le modifier. De plus, votre application peut demander une liste des activités récentes, récupérer l'historique des révisions et importer/télécharger des pièces jointes et des fichiers.
Audience
Ce document part du principe que vous comprenez les idées générales du protocole des API Google Data.
Ce document est destiné aux programmeurs qui souhaitent écrire des applications clientes pouvant interagir avec Google Sites. Il fournit une série d'exemples d'interactions de base avec l'API Data à l'aide de XML/HTTP bruts, avec des explications. Après avoir lu ce document, vous pouvez en savoir plus sur l'interaction avec l'API à l'aide de nos bibliothèques clientes en consultant les exemples spécifiques à chaque langage dans les autres guides de la barre de navigation de gauche.
Pour obtenir des informations de référence sur le contenu de ce guide, consultez le guide de référence.
Autoriser les requêtes
Lorsque votre application demande des données utilisateur non publiques, elle doit inclure un jeton d'autorisation. Celui-ci permet également d'identifier votre application auprès de Google.
À propos des protocoles d'autorisation
Votre application doit autoriser les requêtes via le protocole OAuth 2.0. Les autres protocoles d'autorisation ne sont pas acceptés. Si votre application utilise la fonctionnalité Se connecter avec Google, certains aspects de l'autorisation sont traités pour vous.
Autoriser des requêtes avec OAuth 2.0
Les requêtes adressées à l'API Google Sites Data portant sur des données utilisateur non publiques doivent être autorisées par un utilisateur authentifié.
Les détails de la procédure d'autorisation (ou "flux") relative à OAuth 2.0 varient légèrement selon le type d'application que vous développez. La procédure générale suivante s'applique à tous les types d'applications :
- Lorsque vous créez votre application, vous l'enregistrez dans la console d'API Google. Google fournit ensuite des informations dont vous aurez besoin ultérieurement, dont un ID client et un code secret du client.
- Activez l'API Google Sites Data dans la console Google APIs. Si l'API ne figure pas dans la console, ignorez cette étape.
- Lorsque votre application doit accéder à des données utilisateur, elle demande à Google un champ d'application d'accès particulier.
- Google affiche alors un écran d'autorisation, dans lequel l'utilisateur est invité à autoriser votre application à demander certaines de ses données.
- Si l'utilisateur accepte, Google attribue à votre application un jeton d'accès temporaire.
- Votre application demande des données utilisateur en joignant le jeton d'accès à la requête.
- Dès lors que Google valide la requête et le jeton, les données demandées sont renvoyées.
Certains flux comportent des étapes supplémentaires, comme l'utilisation de jetons d'actualisation en vue de l'acquisition de nouveaux jetons d'accès. Pour en savoir plus sur les flux concernant divers types d'applications, consultez la documentation OAuth 2.0 de Google.
Voici les informations sur le champ d'application OAuth 2.0 pour l'API Google Sites Data :
https://sites.google.com/feeds/
Pour demander l'accès via OAuth 2.0, vous avez besoin du champ d'application ainsi que des informations fournies par Google lors de l'enregistrement de l'application (l'ID client et le code secret du client, par exemple).
Spécifier une version
Chaque requête que vous envoyez à l'API Google Sites Data doit spécifier la version 1.4. Pour spécifier un numéro de version, utilisez l'en-tête HTTP GData-Version :
GData-Version: 1.4
Si vous ne pouvez pas définir d'en-têtes HTTP, vous pouvez également spécifier v=1.4 en tant que paramètre de requête dans l'URL. Toutefois, l'en-tête HTTP est préférable dans la mesure du possible.
Remarque : Les bibliothèques clientes fournissent automatiquement les en-têtes de version appropriés. N'utilisez donc pas le paramètre de requête v=1.4 lorsque vous utilisez une bibliothèque cliente.
Flux de site
Le flux de sites peut être utilisé pour lister les sites Google Sites dont un utilisateur est propriétaire ou pour lesquels il dispose d'autorisations de consultation. Il permet également de modifier le titre d'un site existant. Pour les domaines G Suite, il peut également être utilisé pour créer ou copier un site entier.
Répertorier les sites
Pour lister les sites auxquels un utilisateur a accès, envoyez une requête GET authentifiée à l'URL suivante :
https://sites.google.com/feeds/site/domainName| Paramètre de flux | Description |
|---|---|
domainName | site ou le domaine de votre domaine hébergé G Suite (par exemple, example.com). |
La réponse contiendra un flux avec une liste de sites :
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>
Les sites sont listés par ordre alphabétique.
Créer des sites
Remarque : Cette fonctionnalité n'est disponible que pour les domaines G Suite.
Pour provisionner de nouveaux sites, vous pouvez effectuer une requête HTTP POST vers le flux de sites. Par exemple :
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>
La requête ci-dessus crée un site Google avec le thème "slate" (ardoise) sous le domaine G Suite example.com.
L'URL du site source serait http://sites.google.com/a/example.com/source-site/.
Si le site est créé, le serveur répond par 201 Created.
L'entrée de réponse contient des éléments ajoutés par le serveur, tels qu'un lien vers le site, un lien vers le flux de la LCA du site, le nom, le titre et le résumé du site.
<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>
Copier un site
Remarque : Cette fonctionnalité n'est disponible que pour les domaines G Suite.
Vous pouvez dupliquer un site existant de la même manière que vous créez un site. Toutefois, dans l'entrée Atom de la requête POST, incluez un <link> avec rel='source' pointant vers le flux du site à copier. Ce lien sera disponible pour tous les sites copiés. Voici un exemple de duplication d'un site :
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>
La requête ci-dessus copierait le site à l'adresse http://sites.google.com/a/example.com/source-site/.
Points importants :
- Seuls les sites et les modèles de site appartenant à l'utilisateur authentifié peuvent être copiés.
- Vous pouvez également copier un modèle de site. Un site est un modèle si le paramètre "Publier ce site comme modèle" est coché sur la page des paramètres Google Sites.
- Vous pouvez copier un site depuis un autre domaine, à condition d'être listé comme propriétaire sur le site source.
Mettre à jour les métadonnées d'un site
Pour modifier le titre ou le résumé d'un site, envoyez une requête HTTP PUT au lien edit d'une entrée de site.
Par exemple, l'exemple suivant met à jour le titre du site précédent en New Test Site2 et sa description en Newer description.
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"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>
Ajouter des catégories
Remarque : Cette fonctionnalité n'est disponible que pour les domaines G Suite.
Les sites G Suite pour votre domaine incluent des métadonnées de catégorie qui sont utiles pour classer les sites de votre domaine. Pour ajouter ou modifier des métadonnées de catégorie, envoyez une requête HTTP PUT au lien edit de l'entrée de votre site, qui inclut une balise category. Consultez la ligne en gras dans l'exemple suivant :
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>
Cet exemple modifie un site existant et ajoute la catégorie "Site d'équipe".
Vous pouvez également ajouter plusieurs catégories en ajoutant des balises <category> supplémentaires. Consultez les lignes en gras dans l'exemple suivant :
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>
Cet exemple ajoute deux catégories : "Site d'équipe" et "Service juridique".
Mappages d'adresses Web
Les mappages d'adresses Web permettent aux utilisateurs de Sites d'associer leurs propres domaines à un site Google. Par exemple, http://www.mydomainsite.com peut être utilisé à la place de http://sites.google.com/a/domain.com/mysite. Selon l'endroit où votre site est hébergé, vous pouvez modifier manuellement les mappages d'adresses Web d'un site. Pour en savoir plus, consultez cet article du Centre d'aide.
Récupérer les mappages d'adresses Web d'un site
Pour renvoyer les mappages d'adresses Web d'un site, récupérez l'entrée/le flux du site avec le paramètre with-mappings=true :
GET /feeds/site/domainName?with-mappings=true HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> ... <entry gd:etag="W/"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>
Les mappages existants s'affichent sous forme de link avec rel="webAddressMapping". Par exemple, dans l'exemple ci-dessus, il existe trois webAddressMapping qui pointent vers le site http://sites.google.com/site/myOtherTestSite.
Modifier les mappages d'adresses Web
Remarque : Toutes les opérations GET/POST/PUT doivent spécifier le paramètre with-mappings=true lorsque vous travaillez avec des mappages d'adresses Web. Si le paramètre est absent, webAddressMapping ne sera pas renvoyé dans les entrées de site (GET) ni pris en compte lors de la mise à jour/suppression (PUT) des mappages d'une entrée.
Pour ajouter, modifier ou supprimer un mappage, il vous suffit de spécifier, de modifier ou de supprimer un tel lien lorsque vous créez des sites ou mettez à jour les métadonnées d'un site. Le paramètre with-mappings=true doit être inclus dans l'URI du flux du site.
Remarque : Pour mettre à jour les mappages d'adresses, vous devez être administrateur du site ou administrateur du domaine dans le cas d'un site hébergé dans G Suite.
Par exemple, la requête ci-dessous met à jour le mappage http://www.mysitemapping.com sur http://www.my-new-sitemapping.com et supprime http://www.mysitemapping2.com en omettant le lien dans l'entrée :
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>
Notez que vous pouvez également spécifier des mappages d'adresses Web lorsque vous créez ou copiez un site.
Flux d'activités
Vous pouvez récupérer l'activité récente (modifications) d'un site en récupérant le flux d'activité. Chaque entrée du flux d'activité contient des informations sur une modification apportée au site.
Pour interroger le flux d'activité, envoyez une requête HTTP GET à l'URL du flux d'activité :
https://sites.google.com/feeds/activity/domainName/siteName
| Paramètre de flux | Description |
|---|---|
domainName | site ou le domaine de votre domaine hébergé G Suite (par exemple, example.com). |
siteName | Nom de l'espace Web de votre site, que vous trouverez dans l'URL du site (par exemple, myCoolSite). |
Exemple de requête et de réponse :
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>
Remarque : Pour accéder à ce flux, vous devez être collaborateur ou propriétaire du site.
Votre client doit envoyer l'en-tête Authorization approprié et faire référence au jeton obtenu dans Autoriser les requêtes.
Flux de révisions
Pour récupérer l'historique des révisions d'une entrée de contenu, envoyez une requête HTTP GET au lien de révision de l'entrée :
https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
| Paramètre de flux | Description |
|---|---|
domainName | site ou le domaine de votre domaine hébergé G Suite (par exemple, example.com). |
siteName | Nom de l'espace Web de votre site, que vous trouverez dans l'URL du site (par exemple, myCoolSite). |
Pour trouver le lien vers les révisions d'une page, d'un commentaire, d'une pièce jointe ou d'un élément de liste, commencez par récupérer l'entrée du flux de contenu à l'aide de son CONTENT_ENTRY_ID. L'entrée récupérée contiendra un <atom:link> vers le flux de révisions.
Exemple :
<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"/>
Exemple de requête et de réponse :
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>
Remarque : Pour accéder à ce flux, vous devez être collaborateur ou propriétaire du site.
Votre client doit envoyer l'en-tête Authorization approprié et faire référence au jeton obtenu dans Autoriser les requêtes.
Flux de contenu
Récupérer du contenu
Le flux de contenu liste le contenu actuel d'un site. Envoyez une requête GET authentifiée à l'URL suivante :
https://sites.google.com/feeds/content/domainName/siteName
| Paramètre de flux | Description |
|---|---|
domainName | site ou le domaine de votre domaine hébergé G Suite (par exemple, example.com). |
siteName | Nom de l'espace Web de votre site, que vous trouverez dans l'URL du site (par exemple, myCoolSite). |
Le résultat est un flux qui liste la première page des entrées de contenu sur le site. Chaque entrée du flux représente un type d'entrée de contenu différent, tel qu'un webpage, un filecabinet, un attachment, un comment, etc. L'élément <category scheme="http://schemas.google.com/g/2005#kind"> détermine le type d'entrée. Consultez le guide de référence pour obtenir la liste des valeurs kind acceptées.
Remarque : L'authentification peut être requise ou non pour ce flux, en fonction des autorisations de partage du site.
Si le site n'est pas public, votre client doit envoyer l'en-tête Authorization approprié (comme indiqué dans l'exemple ci-dessus) et faire référence au jeton obtenu dans Autorisation des requêtes.
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>
Remarque : Il ne s'agit que des premiers résultats. Pour parcourir l'intégralité du flux de contenu, suivez le lien "next" (suivant) du flux :
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
Pour obtenir une explication des éléments communs à Atom, consultez la documentation de référence sur le protocole de données Google.
Les éléments qui ont une signification spécifique pour l'ancienne API Sites sont décrits ci-dessous. Certaines entrées de type auront des propriétés supplémentaires (non listées ci-dessous), tandis que d'autres n'en auront pas. Par exemple, une entrée listitem peut comporter des éléments <gs:field>, contrairement à une entrée webpage.
| Élément | Description |
|---|---|
<content ...> | Le texte interne correspond au corps HTML de la page. Pour certaines entrées (par exemple, les pièces jointes), cet élément contient un attribut src qui pointe vers le fichier. |
<link rel="alternate" ...> | Lien vers la page ou l'élément dans Google Sites. |
<link rel="http://schemas.google.com/sites/2008#revision" ...> | L'attribut href pointe vers le flux de révisions de l'entrée. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | L'attribut href pointe vers l'entrée parente de l'entrée. |
<link rel="http://schemas.google.com/sites/2008#template" ...> | L'attribut href pointe vers la page de modèle de l'entrée. |
<category scheme="http://schemas.google.com/g/2005#kind" ...> | label est le type d'entrée. |
<category term="http://schemas.google.com/g/2005#template" ...> | label=template indiquant que l'entrée est un modèle. |
<gd:feedLink> | L'attribut href pointe vers les enfants du parent de l'entrée. |
<sites:pageName> | Nom de l'espace Web de la page, qui correspond au nom figurant dans l'URL de la page. |
<sites:revision> | Numéro de révision actuel. |
Exemples de requêtes de flux de contenu
Vous pouvez effectuer une recherche dans le flux de contenu à l'aide de certains paramètres de requête standards de l'API Google Data et de ceux spécifiques à l'ancienne API Sites. Pour en savoir plus et obtenir la liste complète des paramètres acceptés, consultez le Guide de référence.
Récupérer des types d'entrées spécifiques
Pour n'extraire qu'un type d'entrée particulier, utilisez le paramètre kind. Cet exemple ne renvoie que les entrées webpage :
GET /feeds/content/domainName/siteName?kind=webpage
Pour renvoyer plusieurs types d'entrées, séparez chaque kind par une virgule (","). Cet exemple renvoie les entrées filecabinet et listpage :
GET /feeds/content/domainName/siteName?kind=filecabinet,listpage
Vous pouvez également utiliser le format standard pour une requête /-/category Google Data au lieu du paramètre kind :
GET /feeds/content/domainName/siteName/-/filecabinet|listpage
Récupérer des modèles de page
Cet exemple ne renvoie que template pages :
GET /feeds/content/domainName/siteName/-/template
Pour renvoyer tous les types d'entrées et inclure les pages template, utilisez :
GET /feeds/content/domainName/siteName/-/template|-template
Récupérer une page par chemin d'accès
Si vous connaissez le chemin relatif d'une page dans le site Google, vous pouvez utiliser le paramètre path pour récupérer cette page spécifique.
Cet exemple renverrait la page située à l'adresse http://sites.google.com/site/siteName/path/to/the/page :
GET /feeds/content/domainName/siteName?path=/path/to/the/page
Récupérer toutes les entrées d'une page parente
Si vous connaissez l'ID d'entrée d'une page, vous pouvez utiliser le paramètre parent pour récupérer toutes ses entrées enfants (le cas échéant) :
GET /feeds/content/domainName/siteName?parent=CONTENT_ENTRY_ID
y compris les brouillons ou les entrées supprimées ;
Pour inclure les entrées brouillons ou supprimées, utilisez respectivement les paramètres include-drafts ou include-deleted.
Cet exemple inclut des entrées provisoires dans le flux de contenu :
GET /feeds/content/domainName/siteName?include-drafts=true
Recherche en texte intégral
Pour effectuer une recherche dans l'intégralité du contenu d'un site, utilisez le paramètre q pour effectuer une recherche en texte intégral :
GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for
Créer du contenu
Pour créer du contenu (pages Web, pages de liste, pages de dépôt de fichiers, pages d'annonces, etc.), envoyez une requête HTTP POST au flux de contenu :
https://sites.google.com/feeds/content/domainName/siteName
Pour obtenir la liste des types d'entrée acceptés, consultez le paramètre kind dans le Guide de référence.
Créer des éléments / pages
Cet exemple crée un webpage sous le niveau supérieur du site, inclut du code XHTML pour le corps de la page et définit le titre de l'en-tête sur "Nouveau titre de page Web" :
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>
Si l'opération réussit, le serveur répond avec un code 201 Created et une copie de l'entrée.
Créer des éléments/pages sous des chemins d'URL personnalisés
Par défaut, l'exemple précédent serait créé sous l'URL http://sites.google.com/domainName/siteName/new-webpage-title et aurait un titre de page "Nouveau titre de page Web". Autrement dit, <atom:title> est normalisé en new-webpage-title pour l'URL.
Pour personnaliser le chemin d'URL d'une page, vous pouvez définir l'élément <sites:pageName>.
Cet exemple crée un filecabinet avec un titre de page "Stockage de fichiers", mais crée la page sous l'URL http://sites.google.com/domainName/siteName/files en spécifiant l'élément <sites:pageName>.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 393 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>File Storage</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">A list of files is below.</div> </content> <sites:pageName>files</sites:pageName> </entry>
Le serveur utilise les règles de priorité suivantes pour nommer le chemin d'URL d'une page :
<sites:pageName>, si disponible. Doit être conforme àa-z, A-Z, 0-9, -, _.<atom:title>: ne doit pas être nul si pageName n'est pas présent. La normalisation consiste à supprimer les espaces blancs et à les remplacer par "-", et à supprimer les caractères ne correspondant pas àa-z, A-Z, 0-9, -, _.
Par exemple, "Custom_Page2" serait accepté par le serveur.
Créer des sous-pages
Pour créer des sous-pages (enfants) sous une page parente, incluez un <link rel="http://schemas.google.com/sites/2008#parent"> dans votre nouvelle entrée Atom. Définissez l'attribut href du lien sur le lien "self" de l'entrée parente.
Cet exemple crée un announcement avec le titre "annonce", sous une page d'annonces parente avec l'ID d'entrée PARENT_ENTRY_ID. Le contenu XHTML du corps de la page est également inclus :
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>
Modèles de page
Créer des modèles de page
La procédure de création d'un modèle de page est la même que celle pour créer des éléments/pages et créer des sous-pages.La différence réside dans l'ajout de category avec le terme et le libellé définis sur "http://schemas.google.com/g/2005#template" et "template", respectivement.
Cet exemple crée un modèle webpage.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 464 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <category scheme="http://schemas.google.com/g/2005#labels" term="http://schemas.google.com/g/2005#template" label="template"/> <title>Webpage Template</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">This weekend. My place.</div> </content> </entry>
Créer des pages à partir d'un modèle
Comme pour la création de modèles de page, vous pouvez instancier une nouvelle page à partir d'un modèle en incluant un <link> avec rel='http://schemas.google.com/sites/2008#template' pointant vers le lien vers soi d'un modèle de page.
Cet exemple crée une page filecabinet à partir d'un modèle de page existant qui définit un classeur.
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>
Remarque : Même si un modèle définit un <category>, vous devez quand même en inclure un dans votre entrée. Notez également que si vous incluez un élément <content>, le serveur le refusera.
Importer des fichiers
Comme dans Google Sites, l'API vous permet d'importer des pièces jointes sur les pages de l'armoire à fichiers et les pages parentes.
Pour importer une pièce jointe dans un contenu parent, envoyez une requête HTTP POST à l'URL du flux de contenu :
https://sites.google.com/feeds/content/domainName/siteName
Le corps POST doit être une requête MIME multipart, pour combiner le contenu du fichier avec un <atom:entry> contenant les métadonnées de la pièce jointe. Le <atom:entry> doit faire référence au lien auto de l'entrée parente afin de spécifier où la pièce jointe sera créée.
Pour en savoir plus, consultez Créer des sous-pages.
Transfert de pièces jointes
Voici un exemple d'importation d'un fichier PDF dans un coffre-fort dont l'ID est PARENT_ENTRY_ID. La pièce jointe sera créée avec le titre "Fichier PDF" et une description (facultative) "Dossier RH".
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--
Si l'importation réussit, le serveur répond avec un 201 Created et une copie de l'entrée de pièce jointe nouvellement créée.
Importer une pièce jointe dans un dossier
Pour importer une pièce jointe dans un dossier existant d'un filecabinet, incluez une catégorie dont l'attribut "term" est défini sur le nom du dossier :
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">Pièces jointes Web
Les pièces jointes Web sont des types spéciaux de pièces jointes. Il s'agit essentiellement de liens vers d'autres fichiers sur le Web que vous pouvez ajouter à vos fiches de classeur. Cette fonctionnalité est analogue à la méthode d'importation "Ajouter un fichier par URL" dans l'interface utilisateur de Google Sites.
Remarque : Les pièces jointes Web ne peuvent être créées que dans un fichier cabinet. Vous ne pouvez pas les importer sur d'autres types de pages.
Cet exemple crée un webattachment dans le classeur référencé par l'ID FILECABINET_ENTRY_ID.
Son titre et sa description (facultative) sont définis sur "GoogleLogo" et "nice colors", respectivement.
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>
POST crée un lien dans le classeur de l'utilisateur qui pointe vers l'image à l'adresse "http://www.google.com/images/logo.gif".
Mettre à jour le contenu
Les métadonnées (titre, pageName, etc.) et le contenu de n'importe quelle page peuvent être modifiés avec une seule requête PUT vers le lien edit.
Le corps de la requête doit contenir une entrée Atom décrivant la page mise à jour. La seule exception à cette règle concerne les entrées de pièces jointes, qui ne peuvent être utilisées que pour mettre à jour les métadonnées des pièces jointes.
Pour modifier le contenu du fichier joint, il vous suffit d'inclure les données brutes dans le corps d'une requête PUT au lien edit-media de la pièce jointe. Vous pouvez également mettre à jour à la fois les métadonnées et le contenu du fichier joint en utilisant une requête multipart MIME.
Pour affirmer que votre mise à jour ne remplace pas les modifications d'un autre client, incluez la valeur ETag de l'entrée d'origine. Pour ce faire, indiquez la valeur ETag dans un en-tête HTTP If-Match ou incluez l'attribut gd:etag de l'entrée d'origine dans l'entrée modifiée. Pour déterminer la valeur ETag de l'entrée d'origine, examinez l'attribut gd:etag de l'élément <entry>.
Pour les entrées multimédias, l'ETag du contenu multimédia peut être disponible dans l'attribut gd:etag du lien edit-media.
Si vous souhaitez mettre à jour l'entrée, que quelqu'un d'autre l'ait modifiée ou non depuis que vous l'avez récupérée, utilisez If-Match: * et n'incluez pas l'ETag. Pour en savoir plus sur les ETags, consultez le guide de référence des API Google Data.
Mettre à jour les métadonnées ou le contenu HTML d'un élément
Pour mettre à jour les métadonnées ou le contenu HTML d'une entrée, envoyez une requête HTTP PUT au lien edit de l'entrée.
Voici un exemple de mise à jour d'une entrée listpage (représentée par son ID ENTRY_ID) avec les modifications suivantes :
- Le titre est remplacé par "Contenu mis à jour".
- Contenu HTML mis à jour
- L'en-tête de la première colonne de la liste est remplacé par "Propriétaire".
- Le chemin d'URL de la page est modifié par l'élément
<sites:pageName>.
PUT /feeds/content/domainName/siteName/ENTRY_ID Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Length: 816 Content-Type: application/atom+xml <entry xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"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>
Remarque : L'entrée (telle qu'elle est renvoyée par le serveur) contiendra plus d'éléments que l'exemple ci-dessus.
Remplacer le contenu d'une pièce jointe
Vous trouverez ci-dessous un exemple de remplacement du contenu d'une pièce jointe, sans modifier ses métadonnées. Étant donné que la demande contient du nouveau contenu, le lien edit-media de l'entrée de pièce jointe est utilisé.
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 ...
Mettre à jour les métadonnées et le contenu des pièces jointes
Vous trouverez ci-dessous un exemple de mise à jour simultanée des métadonnées et du contenu d'une pièce jointe. Le nom de la pièce jointe sera remplacé par "Nouveau titre" et son contenu sera remplacé par celui d'un fichier .zip. Étant donné que la requête contient un nouveau contenu de fichier, le lien edit-media de l'entrée de pièce jointe est utilisé.
Notez que l'inclusion de l'ETag pour les métadonnées fournit également un If-Match implicite pour le contenu multimédia, car toute mise à jour du contenu multimédia entraîne la modification de l'ETag des métadonnées.
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
Supprimer du contenu
Pour supprimer un élément d'un site Google, récupérez d'abord l'entrée, puis envoyez une requête DELETE à l'URL edit de l'entrée. Il s'agit de la même URL que celle utilisée pour mettre à jour les métadonnées ou le contenu HTML d'un élément.
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>
Si l'entrée a été supprimée, le serveur répond par un HTTP 200 OK.
Si vous souhaitez vous assurer de ne pas supprimer une entrée qui a été modifiée par un autre client depuis que vous l'avez récupérée, incluez un en-tête HTTP If-Match contenant la valeur ETag de l'entrée d'origine. Vous pouvez déterminer la valeur ETag de l'entrée d'origine en examinant l'attribut gd:etag de l'élément <entry>.
Si vous souhaitez supprimer l'entrée, que quelqu'un d'autre l'ait modifiée ou non depuis que vous l'avez récupérée, utilisez If-Match: * et n'incluez pas l'ETag. (Dans ce cas, vous n'avez pas besoin de récupérer l'entrée avant de la supprimer.)
Pour en savoir plus sur les ETag, consultez le guide de référence des API Google Data.
Télécharger des pièces jointes
Une fois que vous avez une entrée de pièce jointe, vous pouvez télécharger le fichier en envoyant une requête HTTP GET authentifiée au lien <content> src de l'entrée. Voici un exemple de lien vers le contenu d'un PDF :
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
Flux de la LCA
Présentation des autorisations de partage (LCA)
Chaque entrée de LCA dans le flux de LCA représente un rôle d'accès d'une entité spécifique (utilisateur, groupe d'utilisateurs, domaine ou accès par défaut, qui correspond à un site public). Les entrées ne s'affichent que pour les entités ayant un accès explicite. Une entrée s'affiche pour chaque adresse e-mail dans le panneau "Personnes ayant accès" de l'écran de partage de l'interface utilisateur Google Sites. Par conséquent, les administrateurs de domaine ne s'afficheront pas, même s'ils ont un accès implicite à un site.
Rôles
L'élément "role" représente un niveau d'accès qu'une entité peut avoir. L'élément gAcl:role peut avoir quatre valeurs :
- Lecteur : un lecteur (équivalent à un accès en lecture seule).
- writer : collaborateur (équivaut à un accès en lecture/écriture).
- owner : il s'agit généralement de l'administrateur du site (équivalent à un accès en lecture/écriture).
Niveaux d'accès
L'élément "scope" représente l'entité qui dispose de ce niveau d'accès. L'élément gAcl:scope peut avoir cinq types :
- user : valeur d'adresse e-mail, par exemple "user@gmail.com".
- group : adresse e-mail d'un groupe Google Groupes (par exemple, "group@domain.com").
- domain : nom de domaine G Suite, par exemple "domain.com".
- invite : un utilisateur qui a été invité sur le site, mais qui n'a pas encore été ajouté à la LCA du site. (Non disponible si gdata 1.3 ou version antérieure est spécifié.)
- default : il n'existe qu'un seul champ d'application de type "default", qui n'a aucune valeur (par exemple,
<gAcl:scope type="default">). Ce champ d'application spécifique contrôle l'accès dont dispose tout utilisateur par défaut sur un site public.
Remarque : Les domaines ne peuvent pas avoir une valeur gAcl:role définie sur "accès propriétaire". Ils ne peuvent être que lecteurs ou rédacteurs.
À propos du champ d'application "invite".
L'API renvoie le champ d'invitation lorsque vous ajoutez un ou plusieurs utilisateurs à la LCA qui ne possèdent pas encore de compte Google. L'API renvoie une URL avec un jeton intégré que vous devez fournir aux utilisateurs invités pour leur permettre d'accepter l'invitation.
Cette méthode d'invitation vous permet d'inviter des utilisateurs non Google sans savoir au préalable quelle adresse e-mail ils souhaitent utiliser. Tant que les utilisateurs cliquent sur l'URL d'invitation avec le jeton intégré, ils peuvent s'inscrire pour accéder au service avec l'adresse e-mail de leur choix. De plus, plusieurs utilisateurs peuvent potentiellement utiliser cette URL pour accepter l'invitation. Cela peut donc être utile si vous invitez un utilisateur ou un groupe d'utilisateurs.
Remarque : Le champ d'application "invite" n'est disponible que dans la version 1.4 de gdata et les versions ultérieures. Cela ne fonctionnera pas si vous spécifiez explicitement la version 1.3 ou une version antérieure.
Récupérer le flux de LCA
Le flux de LCA peut être utilisé pour contrôler les autorisations de partage d'un site. Il est accessible via l'URI suivant :
https://sites.google.com/feeds/acl/site/domainName/siteName
| Paramètre de flux | Description |
|---|---|
domainName | site ou le domaine de votre domaine hébergé G Suite (par exemple, example.com). |
siteName | Nom de l'espace Web de votre site, que vous trouverez dans l'URL du site (par exemple, myCoolSite). |
Notez que chaque entrée du flux du site contient un lien vers ce flux :
<link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
Pour récupérer les autorisations de partage d'un site, envoyez une requête HTTP GET à l'URI du flux LCA :
GET /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
Le serveur répond avec un 200 OK et un flux d'entrées ACL :
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008"
xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms"
xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005"
xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/acl/site/domainName/siteName</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<title>Acl</title>
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
<generator version="1" uri="http://sites.google.com">Google Sites</generator>
<openSearch:startIndex>1</openSearch:startIndex>
<entry>
<id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40gmail.com</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/>
<link rel="edit" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/>
<gAcl:scope type="user" value="userA@google.com"/>
<gAcl:role value="owner"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/>
<link rel="edit" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/>
<gAcl:scope type="user" value="userB@gmail.com"/>
<gAcl:role value="writer"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com</id>
<updated>2009-12-03T22:01:05.963Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/>
<link rel="self" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/>
<link rel="edit" type="application/atom+xml"
href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/>
<gAcl:scope type="user" value="userC@gmail.com"/>
<gAcl:role value="reader"/>
</entry>
...
</feed>
Partager un site
Le flux de LCA accepte les requêtes GET, POST et PUT. Pour insérer un nouveau rôle dans le flux de LCA, il vous suffit d'envoyer une requête POST au flux de LCA du site.
Remarque : Certaines LCA de partage ne sont possibles que si le domaine est configuré pour autoriser de telles autorisations (par exemple, si le partage en dehors du domaine pour les domaines G Suite est activé, etc.).
Cet exemple ajoute un collaborateur (rédacteur) au site :
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>
Un 201 Created et la nouvelle entrée sont renvoyés en cas d'insertion réussie :
<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>
Inviter des utilisateurs avec le champ d'application "invite"
Si vous ajoutez des utilisateurs qui ne possèdent pas de compte Google, l'API renvoie une URL que vous devez fournir aux utilisateurs que vous souhaitez inviter. Après avoir cliqué sur l'URL, ils pourront accéder au site en se connectant avec un compte existant ou en en créant un.
Une invitation réussie renvoie un code 201 Created et une nouvelle entrée incluant l'URL que vous devez transmettre à l'utilisateur :
<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>
Partage au niveau du groupe et du domaine
Comme pour le partage d'un site avec un seul utilisateur, vous pouvez partager un site avec un groupe Google ou un domaine G Suite. Les valeurs scope nécessaires sont listées ci-dessous.
Partage avec une adresse e-mail de groupe :
<gAcl:scope type="group" value="group@example.com"/>
Partager avec l'ensemble d'un domaine :
<gAcl:scope type="domain" value="example.com"/>
Le partage au niveau du domaine n'est disponible que pour les domaines G Suite et uniquement pour le domaine sur lequel le site est hébergé. Par exemple, http://sites.google.com/a/domain1.com/siteA ne peut partager l'intégralité du site qu'avec domain1.com, et non avec domain2.com. Les sites qui ne sont pas hébergés sur un domaine G Suite (par exemple, http://sites.google.com/site/siteB) ne peuvent pas inviter de domaines.
Modifier les autorisations de partage
Pour mettre à jour une entrée ACL, modifiez-la comme nécessaire, puis envoyez une requête HTTP PUT au lien edit de l'entrée, qui est simplement un élément <link> dont l'attribut "rel" est défini sur "edit". Pour l'exemple précédent, ce lien est le suivant :
<link rel='edit' type='application/atom+xml'
href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>L'extrait de code ci-dessous modifie le rôle de new_writer@gmail.com en "lecteur" :
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>
Supprimer les autorisations de partage
Pour supprimer les autorisations de cet utilisateur, envoyez une requête DELETE au même lien edit que celui utilisé pour la requête PUT :
DELETE /feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
Le serveur répondra avec 200 OK.
Thèmes spéciaux
Récupérer à nouveau un flux ou une entrée
Si vous souhaitez récupérer un flux ou une entrée que vous avez déjà récupérés, vous pouvez améliorer l'efficacité en indiquant au serveur d'envoyer la liste ou l'entrée uniquement si elle a changé depuis la dernière fois que vous l'avez récupérée.
Pour effectuer ce type de récupération conditionnelle, envoyez une requête HTTP GET qui inclut un en-tête HTTP If-None-Match. Dans l'en-tête, spécifiez l'ETag de la liste ou de l'entrée, que vous trouverez dans l'attribut gd:etag de l'élément <feed> ou <entry>.
Exemple d'utilisation du flux de site :
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
Lorsque le serveur reçoit cette requête, il vérifie si l'élément que vous avez demandé possède la même ETag que celle que vous avez spécifiée. Si les ETag correspondent, l'élément n'a pas été modifié et le serveur renvoie un code d'état HTTP 304 Not Modified ou HTTP 412 Precodition Failed. Ces deux codes d'état indiquent que l'élément que vous avez déjà récupéré est à jour.
Si les ETags ne correspondent pas, cela signifie que l'élément a été modifié depuis votre dernière requête. Le serveur renvoie alors l'élément.
Pour en savoir plus sur les ETag, consultez le guide de référence des API Google Data.
Traitement par lots
Les requêtes par lot permettent à votre client d'exécuter plusieurs opérations en une seule requête, au lieu de les envoyer individuellement.
Le serveur effectue autant de modifications demandées que possible et renvoie des informations sur l'état que vous pouvez utiliser pour évaluer la réussite ou l'échec de chaque opération. Pour en savoir plus sur le traitement par lot dans l'API Google Data, consultez Traitement par lot avec les API Google Data.
Chaque opération d'un flux par lot comporte un élément <id>, à l'exception des opérations d'insertion.
Cet élément est identique à l'URL de la requête que vous utiliseriez normalement pour mettre à jour, supprimer ou interroger le flux de contenu.
Par exemple, si vous modifiez une entrée, définissez <id> sur le lien edit de l'entrée en question.
Il permet d'identifier l'entrée cible. Les nouvelles entrées ne comportent pas d'éléments <id>, car elles n'ont pas encore été créées. Vous pouvez définir une valeur de chaîne dans <batch:id>, qui sera renvoyée dans la réponse du serveur et utilisée pour rechercher l'entrée correspondante.
Pour effectuer une requête par lot, créez un flux par lot et envoyez une requête HTTP POST au lien par lot du flux :
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml"
href="https://sites.google.com/feeds/content/site/siteName/batch"/>
L'exemple ci-dessous montre comment interroger, insérer, mettre à jour et supprimer une entrée de page Web :
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>
Le flux renvoyé contient une entrée de résultat pour chaque opération :
<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>