L'API classique de Google Sites permet à vos applications d'accéder au contenu d'un site Google, de le publier et de le modifier. En outre, votre application peut demander la 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
Dans ce document, nous partons du principe que vous comprenez les principes généraux du protocole Google Data APIs.
Ce document est destiné aux programmeurs qui souhaitent créer des applications clientes capables d'interagir avec Google Sites. Il fournit une série d'exemples d'interactions de l'API Data de base avec le format XML/HTTP brut, ainsi que des explications. Après avoir lu ce document, découvrez comment interagir avec l'API à l'aide de nos bibliothèques clientes en consultant les exemples propres aux langages disponibles dans les autres guides de la barre de navigation de gauche.
Pour en savoir plus sur ce document, 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 pour 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") concernant 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 d'autres étapes, comme l'utilisation de jetons d'actualisation afin d'obtenir 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 concernant 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 demande envoyée à 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, il est préférable d'utiliser l'en-tête HTTP si possible.
Remarque: Les bibliothèques clientes fournissent automatiquement les en-têtes de version appropriés. Par conséquent, n'utilisez pas le paramètre de requête v=1.4
lorsque vous utilisez une bibliothèque cliente.
Flux d'actualisation
Le flux de site peut servir à répertorier les sites Google appartenant à un utilisateur ou autorisés à le consulter, et à modifier le titre d'un site existant. Pour les domaines G Suite, il peut également être utilisé pour créer ou copier l'intégralité d'un site.
Répertorier les sites
Pour répertorier 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 du flux | Description |
---|---|
domainName | "site " ou le domaine de votre domaine hébergé par 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 classés par ordre alphabétique.
Création de sites
Remarque: Cette fonctionnalité n'est disponible que pour les domaines G Suite.
Vous pouvez provisionner de nouveaux sites en ajoutant un attribut HTTP POST
au flux du site, 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 "ardoise" sous le domaine G Suite example.com
.
L'URL du site sera http://sites.google.com/a/example.com/source-site/.
Si le site a bien été 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 LCA du site, le nom du site, son titre et son résumé.
<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.
Un site existant peut être dupliqué comme lorsque vous créez un site. Toutefois, dans l'entrée Atom de la requête POST
, incluez un <link>
avec rel='source'
qui pointe vers le flux du site à copier. Tous les sites qui ont été copiés disposent de ce lien. 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 permet de copier le site à l'adresse http://sites.google.com/a/example.com/source-site/.
Points importants:
- Seuls les sites et modèles de sites 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 de Google Sites.
- Vous pouvez copier un site à partir d'un autre domaine, en attendant que vous soyez répertorié comme propriétaire sur le site source.
Mettre à jour les métadonnées d'un site
Pour mettre à jour 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 remplacera le titre du site précédent par New Test Site2
et sa description par 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>
Ajout de catégories
Remarque: Cette fonctionnalité n'est disponible que pour les domaines G Suite.
Les sites G Suite de votre domaine incluent des métadonnées de catégorie qui permettent de catégoriser les sites au sein de votre domaine. Pour ajouter ou mettre à jour des métadonnées de catégorie, envoyez une requête HTTP PUT
au lien edit
de votre entrée de site, qui contient 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>
. 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 de l'équipe" et "Service juridique".
Mappages d'adresses Web
Les mappages d'adresses Web permettent aux utilisateurs de Google Sites de mapper 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'emplacement d'hébergement de votre site, vous pouvez modifier manuellement les mappages d'adresses Web. Pour en savoir plus, consultez notre Centre d'aide.
Récupérer les mappages d'adresses Web d'un site
Pour renvoyer les mappages d'adresses Web pour un site, récupérez l'entrée ou 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 apparaissent sous la forme de link
avec rel='webAddressMapping'. Par exemple, dans l'exemple ci-dessus, trois webAddressMapping
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
lors des mappages d'adresses Web. Si le paramètre est absent, les valeurs webAddressMapping
ne sont pas renvoyées dans les entrées de site (GET) ni prises en compte lors de la mise à jour/de la suppression des mappages (PUT) d'une entrée.
Pour ajouter, mettre à jour ou supprimer un mappage, il vous suffit de spécifier, de modifier ou de supprimer ce lien lorsque vous créez des sites ou mettez à jour les métadonnées de ces sites. Le paramètre with-mappings=true
doit être inclus dans l'URI du flux du site.
Remarque: Pour modifier les mappages d'adresses, vous devez être administrateur du site ou administrateur du domaine, s'il s'agit d'un site hébergé par G Suite.
Par exemple, la requête ci-dessous met à jour le mappage http://www.mysitemapping.com
avec http://www.my-new-sitemapping.com
et supprime http://www.mysitemapping2.com
en omettant le lien:
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 les mappages d'adresses Web peuvent également être spécifiés au moment de la création ou de la copie d'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és. Chaque entrée du flux d'activités contient des informations sur une modification apportée au site.
Pour interroger le flux d'activités, envoyez une requête HTTP GET
à l'URL du flux d'activités:
https://sites.google.com/feeds/activity/domainName/siteName
Paramètre du flux | Description |
---|---|
domainName | "site " ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com ). |
siteName | Nom de l'espace Web de votre site, figurant 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 un collaborateur ou un propriétaire du site.
Votre client doit envoyer l'en-tête Authorization
approprié et référencer le jeton obtenu à la section Autoriser les requêtes.
Flux de révision
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 du flux | Description |
---|---|
domainName | "site " ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com ). |
siteName | Nom de l'espace Web de votre site, figurant dans l'URL du site (par exemple, myCoolSite ) |
Pour trouver le lien "Révisions" d'une page, d'un commentaire, d'une pièce jointe ou d'un élément de liste donnés, récupérez d'abord l'entrée concernée dans le flux de contenu à l'aide de son CONTENT_ENTRY_ID. L'entrée récupérée contient un élément <atom:link>
dans le flux de révision.
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 un collaborateur ou un propriétaire du site.
Votre client doit envoyer l'en-tête Authorization
correct et référencer le jeton obtenu dans la section Autoriser les requêtes.
Flux de contenu
Récupération du contenu
Le flux de contenu répertorie 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 du flux | Description |
---|---|
domainName | "site " ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com ). |
siteName | Nom de l'espace Web de votre site, figurant dans l'URL du site (par exemple, myCoolSite ) |
Il en résulte un flux qui affiche 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, par exemple webpage
, filecabinet
, attachment
, 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: Ce flux peut ou non nécessiter une authentification, 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 illustré dans l'exemple ci-dessus) et référencer le jeton obtenu à la section Autoriser les 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 : Ce ne sont que les premiers résultats. Pour parcourir l'intégralité du flux de contenu, cliquez sur le lien "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 du protocole de données Google.
Les éléments qui ont une signification spécifique à l'API de la version classique de Sites sont décrits ci-dessous. Certaines entrées de genre ont des propriétés supplémentaires (non répertoriées ci-dessous), d'autres non. Par exemple, une entrée listitem
peut contenir des éléments <gs:field>
, contrairement à une entrée webpage
.
Élément | Description |
---|---|
<content ...> | Le texte d'intérieur est le 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" ...> | href pointe vers le flux de révision de l'entrée. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | 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 du 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 signifie 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, correspondant au nom 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 des recherches 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'API classique de 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 genres d'entrées spécifiques
Pour récupérer uniquement 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 barre oblique ":". 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
de données Google 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 extraire cette page spécifique.
Cet exemple renvoie 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 brouillons ou les entrées supprimées, utilisez respectivement les paramètres include-drafts
ou include-deleted
.
Cet exemple comprend des brouillons d'entrées dans le flux de contenu:
GET /feeds/content/domainName/siteName?include-drafts=true
Recherche de texte intégral
Pour effectuer une recherche sur l'intégralité du contenu d'un site, utilisez le paramètre q
afin d'effectuer une recherche en texte intégral:
GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for
Création de contenu
Vous pouvez créer un contenu (pages Web, pages de liste, pages de classeur, pages d'annonce, etc.) en envoyant un attribut HTTP POST
au flux de contenu:
https://sites.google.com/feeds/content/domainName/siteName
Pour obtenir la liste des types d'entrées compatibles, reportez-vous au paramètre kind
dans le Guide de référence.
Créer des éléments / pages
Cet exemple crée un nouvel élément webpage
sous le niveau supérieur du site, inclut du code XHTML pour le corps de la page et définit le titre du titre sur "Nouveau titre de la 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 renvoie un 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 est créé sous l'URL http://sites.google.com/domainName/siteName/new-webpage-title
avec un en-tête de page "Titre de la nouvelle 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 objet filecabinet
avec l'en-tête "Storage Storage" (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>
, le cas échéant. Doit respectera-z, A-Z, 0-9, -, _
.<atom:title>
, ne doit pas être null si pageName n'est pas présent. La normalisation consiste à couper et réduire les espaces blancs sur "-" et à supprimer les caractères qui ne correspondent pas àa-z, A-Z, 0-9, -, _
.
Par exemple, "Custom_Page2" serait accepté par le serveur.
Création de sous-pages
Pour créer des sous-pages (enfants) sous une page parente, ajoutez 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 auto de l'entrée parente.
Cet exemple crée un objet announcement
avec l'en-tête "announcement" (Annonce) sur une page d'annonces parente portant l'ID PARENT_ENTRY_ID
. Le contenu XHTML pour le 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
Le processus de création d'un modèle de page est identique à la création de nouveaux éléments/pages et de la création de sous-pages.La différence est 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 auto 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 : Malgré la définition d'un modèle <category>
, il est toujours obligatoire d'en inclure un dans votre entrée. Notez également que si vous incluez un élément <content>
, le serveur le rejette.
Importer des fichiers
Tout comme dans Google Sites, l'API vous permet d'importer des pièces jointes sur des pages du classeur et des pages parentes.
Pour importer une pièce jointe à un 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 comportant plusieurs parties, permettant de combiner le contenu d'un fichier avec un <atom:entry>
contenant les métadonnées de la pièce jointe. L'élément <atom:entry>
doit référencer le lien auto de l'entrée parente afin de spécifier l'emplacement où le rattachement sera créé.
Pour en savoir plus, consultez Créer des sous-pages.
Importation des pièces jointes…
Voici un exemple d'importation de fichier PDF dans un classeur portant l'ID PARENT_ENTRY_ID
. La pièce jointe sera créée avec le titre "Fichier PDF" et une description (facultative) "Paquet HR".
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 affiche un message 201 Created
et une copie de la nouvelle entrée en pièce jointe.
Importation d'une pièce jointe dans un dossier
Pour importer une pièce jointe dans un dossier existant d'un filecabinet
, incluez une catégorie dans laquelle 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 de pièces jointes spéciaux. Il s'agit essentiellement de liens vers d'autres fichiers sur le Web, que vous pouvez ajouter à vos listes de classeurs. Cette fonctionnalité est similaire à la méthode d'importation "Ajouter un fichier par URL" disponible dans l'interface utilisateur de Google Sites.
Remarque : Les pièces jointes Web ne peuvent être créées que sous un classeur. Elles ne peuvent pas être importées sur d'autres types de pages.
Cet exemple crée un webattachment
sous le classeur référencé par l'ID FILECABINET_ENTRY_ID
.
Son titre et sa description (facultatif) sont respectivement définis sur "GoogleLogo" et "Jolies couleurs".
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 dans le classeur utilisateur un lien qui pointe vers l'image "http://www.google.com/images/logo.gif".
Mise à jour du contenu
Vous pouvez modifier les métadonnées (titre, nom de page, etc.) et le contenu de n'importe quelle page en envoyant une seule requête PUT
au lien edit
.
Le corps de la requête doit contenir une entrée Atom décrivant la page mise à jour. L'exception à cette règle est une entrée de pièce jointe, dans laquelle l'entrée ne peut être utilisée que pour mettre à jour les métadonnées de la pièce jointe.
Pour modifier le contenu du fichier joint, incluez simplement les données brutes dans le corps d'une requête PUT
envoyée au lien edit-media
du rattachement. Vous pouvez également mettre à jour simultanément les métadonnées et le contenu du fichier joint à l'aide d'une requête MIME comportant plusieurs parties.
Pour confirmer que votre mise à jour n'écrase 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 mise à jour. 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 média peut être disponible dans l'attribut gd:etag
du lien edit-media
.
Si vous souhaitez mettre à jour l'entrée, qu'une autre personne l'ait mise à jour 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 un PUT
HTTP 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 a été remplacé par "Contenu mis à jour".
- Contenu HTML mis à jour
- Le premier en-tête de 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="Decription"/> <gs:column index="C" name="Completed"/> </gs:data> <sites:pageName>newPagePath</sites:pageName> </entry>
Remarque : L'entrée (telle que renvoyée par le serveur) contient 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, mais sans modification des métadonnées. Comme la requête contient du nouveau contenu, le lien edit-media
de l'entrée de rattachement 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 ...
Mise à jour des métadonnées et du contenu des pièces jointes
Vous trouverez ci-dessous un exemple de mise à jour simultanée des métadonnées d'une pièce jointe et de son contenu. Le nom de la pièce jointe est remplacé par "Nouveau titre", et son contenu est 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 rattachement 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 de ce contenu 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
Suppression de contenu
Pour supprimer un élément d'un site Google, commencez par récupérer 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 lors de la mise à jour des métadonnées ou du 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 bien été supprimée, le serveur renvoie une réponse HTTP 200 OK
.
Pour vous assurer de ne pas supprimer une entrée qui a été modifiée par un autre client depuis sa récupération, 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, qu'une autre personne l'ait mise à jour ou non, 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 ETags, consultez le guide de référence des API Google Data.
Téléchargement des pièces jointes
Une fois que vous disposez d'une entrée de pièce jointe, vous pouvez télécharger le fichier en envoyant un GET
HTTP authentifié au lien src <content>
de l'entrée. Exemple de lien de 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 LCA
Présentation des autorisations de partage (LCA)
Chaque entrée du flux LCA représente un rôle d'accès d'une entité particulière, à savoir un utilisateur, un groupe d'utilisateurs, un domaine ou l'accès par défaut (un site public). Les entrées ne seront affichées que pour les entités disposant d'un accès explicite. Une seule entrée s'affichera pour chaque adresse e-mail dans le panneau "Personnes ayant accès" sur l'écran de partage de l'interface utilisateur de Google Sites. Ainsi, les administrateurs de domaine ne seront pas affichés, même s'ils disposent d'un accès implicite à un site.
Rôles
L'élément role représente un niveau d'accès qu'une entité peut avoir. Il existe quatre valeurs possibles pour l'élément gAcl:role
:
- reader : lecteur (équivalent à un accès en lecture seule).
- writer : collaborateur (équivalent à un accès en lecture/écriture)
- owner : généralement l'administrateur du site (équivalent à un accès en lecture/écriture).
Niveaux d'accès
L'élément de champ d'application représente l'entité disposant de ce niveau d'accès. Il existe cinq types d'éléments gAcl:scope
possibles:
- user : valeur d'adresse e-mail, par exemple "utilisateur@gmail.com".
- group : adresse e-mail d'un groupe Google, par exemple "group@domain.com".
- domain : nom de domaine G Suite, par exemple "domaine.com".
- invite : utilisateur qui a été invité sur le site, mais qui n'a pas encore été ajouté à la liste de contrôle d'accès correspondante. (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 particulier contrôle l'accès par défaut de n'importe quel utilisateur sur un site public.
Remarque : La valeur gAcl:role
ne peut pas être définie sur "owner" (propriétaire) pour les domaines. Ils ne peuvent être que des lecteurs ou des rédacteurs.
À propos du champ d'application "Inviter".
L'API renvoie le champ d'application d'invitation lorsque vous ajoutez à la LCA un ou plusieurs utilisateurs qui ne possèdent pas encore de compte Google. L'API renvoie une URL avec un jeton intégré que vous devez fournir à vos utilisateurs invités afin de leur permettre d'accepter l'invitation.
Cette méthode d'invitation vous permet d'inviter des utilisateurs autres que Google sans savoir quelle adresse e-mail ils souhaitent utiliser. Tant que les utilisateurs cliquent sur l'URL d'invitation avec le jeton intégré, ils peuvent accéder à l'adresse e-mail de leur choix. De plus, plusieurs utilisateurs peuvent éventuellement utiliser cette URL pour accepter l'invitation. Cela peut donc être utile si vous invitez un seul utilisateur ou un groupe d'utilisateurs.
Remarque : Le champ d'application "Inviter" n'est disponible que dans les versions 1.4 et ultérieures de Gdata. Cela ne fonctionnera pas si vous spécifiez explicitement la version 1.3 ou une version antérieure.
Récupérer le flux LCA
Le flux LCA permet de 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 du flux | Description |
---|---|
domainName | "site " ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com ). |
siteName | Nom de l'espace Web de votre site, figurant 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 GET
et HTTP à 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 de LCA:
<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 LCA accepte les requêtes GET
, POST
et PUT
. Pour insérer un nouveau rôle dans le flux LCA, envoyez simplement une requête POST
au flux LCA du site.
Remarque : Certaines LCA de partage ne peuvent être disponibles que si le domaine est configuré pour accorder 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>
Une opération 201 Created
et la nouvelle entrée sont renvoyées lors d'une 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 via le champ d'application d'invitation
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, il peut accéder au site en se connectant à un compte existant ou en en créant un.
Une invitation réussie renvoie un 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 le partager avec un groupe Google ou un domaine G Suite. Les valeurs scope
nécessaires sont répertoriées ci-dessous.
Partage avec une adresse e-mail de groupe:
<gAcl:scope type="group" value="group@example.com"/>
Partage avec l'ensemble d'un domaine:
<gAcl:scope type="domain" value="example.com"/>
Le partage au niveau du domaine n'est possible 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 peut uniquement partager l'ensemble du site avec domain1.com, et non 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 de LCA, modifiez l'entrée si 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:
<link rel='edit' type='application/atom+xml' href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>
L'extrait ci-dessous remplace le rôle de new_writer@gmail.com
par "reader" :
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>
Suppression des autorisations de partage
Pour supprimer les autorisations accordées à 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 vous répondra avec 200 OK
.
Sujets 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 demandant au serveur d'envoyer la liste ou l'entrée uniquement si elle a été modifiée depuis sa dernière récupération.
Pour effectuer ce type de récupération conditionnelle, envoyez une requête HTTP GET
incluant 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, qui se trouve dans l'attribut gd:etag
de l'élément <feed>
ou de l'élément <entry>
.
Exemple utilisant le 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 le même ETag que celui que vous avez spécifié. Si les ETags correspondent, l'élément n'a pas été modifié et le serveur renvoie un code d'état HTTP 304 Not Modified
ou un code d'état HTTP 412 Precodition Failed
. Ces deux codes d'état indiquent que l'article 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 demande et que le serveur le renvoie.
Pour en savoir plus sur les ETags, 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, plutôt que de soumettre chaque opération individuellement.
Le serveur effectuera autant de modifications demandées que possible et renverra des informations sur l'état permettant d'évaluer le succès ou l'échec de chaque opération. Pour en savoir plus sur le traitement par lot dans l'API Google Data, consultez la page Traitement par lot avec les API Google Data.
Chaque opération d'un flux groupé contient un élément <id>, à l'exception des opérations d'insertion.
Cet élément est identique à l'URL de requête que vous utilisez habituellement pour mettre à jour, supprimer ou interroger le flux de contenu.
Par exemple, si vous mettez à jour une modification, définissez <id> sur le lien edit
de l'entrée en question.
Elle permet d'identifier l'entrée cible. Les nouvelles entrées n'ont pas d'éléments <id>, car elles n'ont pas encore été créées. À la place, 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 de traitement par lot, créez un flux de traitement par lot et envoyez une requête HTTP POST
au lien du lot:
<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>