Guide du protocole

L'API de la version 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 avez compris les concepts généraux sous-jacents au protocole des API Google Data.

Ce document est destiné aux programmeurs qui souhaitent développer des applications clientes capables d'interagir avec Google Sites. Il fournit une série d'exemples d'interactions de base de l'API de données à l'aide de code XML/HTTP brut, avec des explications. Après avoir lu ce document, vous pouvez en apprendre davantage sur l'interaction avec l'API à l'aide de nos bibliothèques clientes en lisant les exemples propres à chaque langage disponibles dans les autres guides de la barre de navigation de gauche.

Pour en savoir plus sur les éléments 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") 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 :

  1. 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.
  2. Activez l'API Google Sites Data dans la console Google APIs. Si l'API ne figure pas dans la console, ignorez cette étape.
  3. Lorsque votre application doit accéder à des données utilisateur, elle demande à Google un champ d'application d'accès particulier.
  4. Google affiche alors un écran d'autorisation, dans lequel l'utilisateur est invité à autoriser votre application à demander certaines de ses données.
  5. Si l'utilisateur accepte, Google attribue à votre application un jeton d'accès temporaire.
  6. Votre application demande des données utilisateur en joignant le jeton d'accès à la requête.
  7. 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 d'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).

Haut de page

Spécifier une version

Chaque requête adressée à l'API Google Sites Data doit spécifier une version de 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 comme 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.

Haut de page

Flux d'actualisation

Le flux de site permet de lister les sites Google appartenant à un utilisateur ou pour lesquels il dispose d'autorisations de consultation, ainsi que de modifier le titre d'un site existant. Pour les domaines G Suite, il permet également de créer ou de 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 de fluxDescription
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/&quot;CkUAQH4_eil7I2A9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/site/myTestSite</id>
  <updated>2009-12-01T01:17:21.042Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T01:17:21.042Z</app:edited>
  <title>myTestSite</title>
  <summary/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myTestSite/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/>
  <sites:siteName>myTestSite</sites:siteName>
  <sites:theme>default</sites:theme>
</entry>
<entry gd:etag="W/&quot;DkQGQHczfA9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id>
  <updated>2009-12-01T02:25:21.987Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited>
  <title>myOtherTestSite</title>
  <summary>A new site to hold memories</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Memories Site"/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <sites:siteName>myOtherTestSite</sites:siteName>
  <sites:theme>iceberg</sites:theme>
</entry>
...
</feed>

Les sites sont classés par ordre alphabétique.

Créer des sites

Remarque: Cette fonctionnalité n'est disponible que pour les domaines G Suite.

Vous pouvez provisionner les nouveaux sites en ajoutant une POST HTTP 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 demande ci-dessus crée un site Google avec le thème "Slate" dans le domaine G Suite example.com. L'URL du site serait http://sites.google.com/a/example.com/site-source/.

Si le site a bien été créé, le serveur envoie une réponse 201 Created. L'entrée de la réponse contiendra les é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, le titre et un 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/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/source-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>New Test Site</title>
  <summary>A new site to hold memories</summary>
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/source-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <sites:siteName>source-site</sites:siteName>
  <sites:theme>slate</sites:theme>
</entry>

Copie d'un site

Remarque: Cette fonctionnalité n'est disponible que pour les domaines G Suite.

Pour dupliquer un site existant, procédez de la même façon que pour créer 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. Tous les sites copiés auront 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 copie le site à l'adresse http://sites.google.com/a/example.com/source-site/.

Points importants:

  • Seuls les sites et modèles de site appartenant à l'utilisateur authentifié peuvent être copiés.
  • Un modèle de site peut également être copié. Un site est considéré comme 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, tant que vous n'êtes pas listé en tant que 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. Dans l'exemple suivant, le titre du site précédent est remplacé 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/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/source-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>New Test Site2</title>
  <summary>Newer description</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Category"/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/source-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/>
  <sites:siteName>source-site</sites:siteName>
</entry>

Ajout de 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 utiles pour classer 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 l'entrée de votre site, incluant une balise category. Reportez-vous à 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/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/source-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>My Team website</title>
  <summary>This site contains contact information and a summary of major efforts our team owns</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site"/>
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <sites:siteName>my-team-site</sites:siteName>
</entry>

Dans cet exemple, un site existant est modifié et la catégorie "Site d'équipe" est ajoutée.

Vous pouvez également ajouter plusieurs catégories en ajoutant des balises <category> supplémentaires. Reportez-vous aux 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/&quot;DEECR38l7I2A9WxNaF0Q.&quot;">
  <id>https://sites.google.com/feeds/site/example.com/my-team-site</id>
  <updated>2009-12-02T23:31:06.184Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited>
  <title>My Team website</title>
  <summary>This site contains contact information and a summary of major efforts our team owns</summary>
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site/">
  <category scheme="http://schemas.google.com/sites/2008#tag" term="Legal Department/">
  <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/>
  <sites:siteName>my-team-site</sites:siteName>
</entry>

Dans cet exemple, deux catégories sont ajoutées: "Site d'équipe" et "Service juridique".

Mappages d'adresses Web

Les mappages d'adresses Web permettent aux utilisateurs de 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 où votre site est hébergé, vous pouvez modifier manuellement le mappage des adresses Web. Pour en savoir plus, consultez notre 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/&quot;DkQGQHczfA9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id>
  <updated>2009-12-01T02:25:21.987Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited>
  <title>myOtherTestSite</title>
  <summary>A new site to hold memories</summary>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel='webAddressMapping' href='http://www.mysitemapping.com'>
  <link rel='webAddressMapping' href='http://www.mysitemapping2.com'>
  <link rel='webAddressMapping' href='http://www.myothermapping.org'>
</entry>
...
</feed>

Les mappages existants s'afficheront sous 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 de l'utilisation des mappages d'adresses Web. Si le paramètre est absent, les webAddressMapping ne sont pas renvoyés dans les entrées de site (GET) et ne sont pas pris en compte lors de la mise à jour/suppression des mappages (PUT) d'une entrée.

Pour ajouter, mettre à jour ou supprimer un mappage, il vous suffit de spécifier, modifier ou supprimer ce lien lors de la création de sites ou de la mise à jour de leurs métadonnées. Le paramètre with-mappings=true doit être inclus dans l'URI du flux de site. Remarque: Pour mettre à jour les mappages d'adresses, vous devez être administrateur du site ou du domaine (dans le cas d'un site hébergé par 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 laissant le lien de 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/&quot;DkQGQHczfA9WxNaFk4.&quot;">
  <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id>
  <updated>2009-12-01T02:25:21.987Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited>
  <title>myOtherTestSite</title>
  <summary>A new site to hold memories</summary>
  <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/>
  <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/>
  <link rel='webAddressMapping' href='www.my-new-sitemapping.com'>
  <!-- missing mapping2 will be deleted -->
  <link rel='webAddressMapping' href='http://www.myothermapping.org'>
</entry>

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.

Haut de page

Flux d'activités

Vous pouvez récupérer l'activité récente d'un site (modifications) en récupérant le flux d'activité. 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 de fluxDescription
domainName"site" ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com).
siteNameNom de l'espace Web de votre site, indiqué dans son URL (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/&quot;CU4GQ3szfSl7ImA9WxNRFUg.&quot;">
<id>https://sites.google.com/feeds/activity/site/siteName/940375996952876062</id>
<updated>2009-09-10T03:38:42.585Z</updated>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#deletion" label="deletion"/>
<title>home</title>
<summary type="xhtml">
  <div xmlns="http://www.w3.org/1999/xhtml">User deleted <a href="http://sites.google.com/site/siteName/home">home</a>
</div>
</summary>
<link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
  href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/>
<link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml"
  href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/>
<link rel="self" type="application/atom+xml"
  href="https://sites.google.com/feeds/activity/site/siteName/940375996952876062"/>
<author>
  <name>User</name>
  <email>user@gmail.com</email>
</author>
</entry>
<entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CU8DQn45fyl7ImA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/activity/site/siteName/7165439066235480082</id>
  <updated>2009-09-10T03:37:53.027Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
    term="http://schemas.google.com/sites/2008#edit" label="edit"/>
  <title>home</title>
  <summary type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">User2 edited <a href="http://sites.google.com/site/siteName/home">home</a>
  </div>
  </summary>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/>
  <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/>
  <link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/activity/site/siteName/7165439066235480082"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
</entry>
<entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CU8AR3s4cSl7ImA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/activity/site/siteName/127448462987345884</id>
  <updated>2009-09-10T03:37:26.539Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
    term="http://schemas.google.com/sites/2008#creation" label="creation"/>
  <title>home</title>
  <summary type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">User3 created <a href="http://sites.google.com/site/siteName/home">home</a>
  </div>
  </summary>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/>
  <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/>
  <link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/activity/site/siteName/127448462987345884"/>
  <author>
    <name>User3</name>
    <email>user3@gmail.com</email>
  </author>
</entry>
</feed>

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 dans Autoriser les requêtes.

Haut de page

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 fluxDescription
domainName"site" ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com).
siteNameNom de l'espace Web de votre site, indiqué dans son URL (par exemple, myCoolSite).

Pour trouver le lien des 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 dans le flux de contenu à l'aide de son CONTENT_ENTRY_ID. L'entrée récupérée contiendra un <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/&quot;CU4GQmA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2</id>
  <updated>2009-09-10T03:38:42.045Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Home</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Latest content here</div>
  </content>
  <link rel="alternate" type="text/html"
    href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4f67c7&amp;rev1=2"/>
  <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:pageName>home</sites:pageName>
  <sites:revision>2</sites:revision>
</entry>
<entry gd:etag="W/&quot;CU8DQ388eSl7ImA9WxNRFUg.&quot;">
  <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1</id>
  <updated>2009-09-10T03:37:52.171Z</updated>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Home</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Older content here</div>
  </content>
  <link rel="alternate" type="text/html"
    href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4bc7&amp;rev1=1"/>
  <link rel="self" type="application/atom+xml"
    href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:pageName>home</sites:pageName>
  <sites:revision>1</sites:revision>
</entry>
</feed>

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 dans Autoriser les requêtes.

Haut de page

Flux de contenu

Récupérer du contenu

Le flux de contenu liste le contenu actuel d'un site Google. Envoyez une requête GET authentifiée à l'URL suivante:

https://sites.google.com/feeds/content/domainName/siteName
Paramètre de fluxDescription
domainName"site" ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com).
siteNameNom de l'espace Web de votre site, indiqué dans son URL (par exemple, myCoolSite).

Il en résulte un flux qui répertorie la première page d'entrées de contenu sur le Site. Chaque entrée du flux représente un type d'entrée de contenu différent (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 nécessiter ou non 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 dans l'exemple ci-dessus) et référencer le jeton obtenu dans 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/&quot;Ck8GQXk7fil7ImA9WxNSFk0.&quot;">
  <id>https://sites.google.com/feeds/content/domainName/siteName/7322156894</id>
  <updated>2009-08-30T02:53:40.706Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:53:40.706Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Subpage</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div>
  </content>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/6492205817"/>
  <link rel="alternate" type="text"
      href="http://sites.google.com/site/siteName/subpage"/>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
      href="https://sites.google.com/feeds/revision/domainName/siteName/7322156894"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:pageName>subpage</sites:pageName>
  <sites:revision>5</sites:revision>
</entry>
<entry gd:etag="W/&quot;CkMBQH08fCl7ImA9WxNSFk0.&quot;">
  <id>https://sites.google.com/feeds/content/domainName/siteName/5930635231</id>
  <updated>2009-08-30T02:47:31.374Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:47:31.374Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#listitem" label="listpage"/>
  <title/>
  <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
      href="https://sites.google.com/feeds/revision/domainName/siteName/5930635231"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <sites:revision>1</sites:revision>
  <gs:field index="A" name="Issue/Feature">Implement cool feature X</gs:field>
  <gs:field index="B" name="Priority">P2</gs:field>
  <gs:field index="C" name="Owner"/>
  <gs:field index="D" name="Resolved"/>
</entry>
<entry gd:etag="W/&quot;AkYHQ3ozcCl7ImA9WxJaE08.&quot;">
  <id>https://sites.google.com/feeds/content/domainName/siteName/1265948545471894517</id>
  <updated>2009-08-03T19:35:32.488Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T19:35:32.488Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/>
  <title>files</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div>
  </content>
  <link rel="alternate" type="text"
      href="https://sites.google.com/domainName/siteName/files"/>
  <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml"
      href="https://sites.google.com/feeds/revision/domainName/siteName/12671894517"/>
  <link rel="self" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/>
  <link rel="edit" type="application/atom+xml"
      href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/>
  <author>
    <name>User</name>
    <email>user@gmail.com</email>
  </author>
  <gd:feedLink href="httpn://sites.google.com/feeds/content/domainName/siteName?parent=12671894517"/>
  <sites:pageName>files</sites:pageName>
  <sites:revision>1</sites:revision>
</entry>
...
</feed>

Remarque: Ce ne sont que les premiers résultats. Pour parcourir l'intégralité du flux de contenu, cliquez sur le lien "Suivant" :

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

Pour plus d'informations sur les éléments communs à Atom, consultez la documentation de référence du protocole de données Google. Les éléments correspondant à 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 comporter des éléments <gs:field>, contrairement à une entrée webpage.

ÉlémentDescription
<content ...>Le texte interne correspond au corps HTML de la page. Pour certaines entrées (les pièces jointes, par exemple), cet élément contient un attribut src pointant vers le fichier.
<link rel="alternate" ...>Créez un 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évision 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 renvoie 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 (signifiant 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 pour le 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'API de la version classique de Sites. Pour obtenir des informations plus détaillées et 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 récupérer uniquement un type d'entrée particulier, utilisez le paramètre kind. Cet exemple ne renvoie que des entrées webpage:

GET /feeds/content/domainName/siteName?kind=webpage

Pour renvoyer plusieurs types d'entrées, séparez les valeurs 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 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 des pages template:

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 particulière. L'exemple suivant renvoie la page située à l'emplacement 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 et les entrées supprimées

Pour inclure des entrées brouillons ou supprimées, utilisez respectivement les paramètres include-drafts ou include-deleted. Cet exemple inclut 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'ensemble 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

Haut de page



Création de contenu

Vous pouvez créer du contenu (pages Web, de listes, de classeurs, d'annonces, etc.) en envoyant 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ées 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 nouveau webpage sous le premier niveau 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 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 la requête aboutit, le serveur envoie une réponse 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 l'en-tête de page "Nouveau titre de la 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 un en-tête "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 de l'URL d'une page:

  1. <sites:pageName>, le cas échéant. Doit être conforme à a-z, A-Z, 0-9, -, _.
  2. <atom:title>, ne doit pas être nul si pageName n'est pas présent. La normalisation consiste à rogner et réduire les espaces blancs en "-" et à supprimer les caractères qui ne correspondent pas à a-z, A-Z, 0-9, -, _.

Par exemple, "Page_personnalisée 2" est 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 auto de l'entrée parente.

Cet exemple crée un announcement avec l'en-tête "annonce", sous une page d'annonces parente avec l'ID d'entrée PARENT_ENTRY_ID. Le contenu WebRTC dans 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

La procédure de création d'un modèle de page est la même que 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 l'attribut rel='http://schemas.google.com/sites/2008#template' renvoyant 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 une 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>, il est toujours nécessaire d'en inclure un dans votre entrée. Notez également que si vous incluez un élément <content>, le serveur le refusera.

Importation des fichiers...

Tout comme dans Google Sites, l'API vous permet d'importer des pièces jointes dans des classeurs et des pages parent.

Pour importer une pièce jointe dans 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 en plusieurs parties pour combiner le contenu du fichier avec un élément <atom:entry> contenant les métadonnées de la pièce jointe. <atom:entry> doit faire référence au lien auto de l'entrée parente afin de spécifier l'emplacement de création du rattachement. Pour en savoir plus, consultez la section Créer des sous-pages.

Importation des pièces jointes…

Voici un exemple d'importation d'un 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 envoie une réponse 201 Created et une copie de la pièce jointe que vous venez de créer.

Importer une pièce jointe dans un dossier

Pour importer une pièce jointe dans un dossier existant dans 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 spéciaux de pièces jointes. Ce sont pour l'essentiel des liens vers d'autres fichiers sur le Web que vous pouvez ajouter à vos listes de classeurs. 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 classeur. Elles ne peuvent pas être importées sur d'autres types de pages.

Dans cet exemple, un webattachment est créé sous la classe de fichiers référencée par l'ID FILECABINET_ENTRY_ID. Son titre et sa description (facultative) sont définis respectivement 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 un lien dans le classeur de l'utilisateur qui pointe vers l'image de "http://www.google.com/images/logo.gif".

Haut de page



Mettre à jour le contenu

Vous pouvez modifier les métadonnées (title, pageName, etc.) et le contenu de chaque page à l'aide d'une seule requête PUT envoyée au lien edit. Le corps de la requête doit contenir une entrée Atom décrivant la page mise à jour. Cette règle ne s'applique pas à la 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 sur le lien edit-media de la pièce jointe. Vous pouvez également mettre à jour simultanément les métadonnées et le contenu des fichiers joints à l'aide d'une requête MIME en plusieurs parties.

Pour confirmer 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, fournissez 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 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 l'ait mise à jour 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 ETag, 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 sur le lien edit de l'entrée.

L'exemple ci-dessous explique comment mettre à jour 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
  • Le premier en-tête de colonne de la liste est remplacé par "Propriétaire".
  • Le chemin de l'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/&quot;CEEBRn0ymA9WxJWEUw.&quot;">
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#listpage" label="listpage"/>
  <title>Updated Title</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div>
  </content>
  <gs:worksheet name="listpage"/>
  <gs:header row="1"/>
  <gs:data startRow="2">
    <gs:column index="A" name="Owner"/>
    <gs:column index="B" name="Decription"/>
    <gs:column index="C" name="Completed"/>
  </gs:data>
  <sites:pageName>newPagePath</sites:pageName>
</entry>

Remarque:L'entrée (telle que renvoyée par le serveur) contiendra plus d'éléments que l'exemple ci-dessus.

Remplacer le contenu d'une pièce jointe

L'exemple ci-dessous montre comment remplacer le contenu d'une pièce jointe sans modifier ses métadonnées. Comme la requête comporte 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

L'exemple ci-dessous montre comment modifier simultanément les métadonnées d'une pièce jointe et son contenu. Le nom des pièces jointes sera remplacé par "New Title" (Nouveau titre), et son contenu sera remplacé par un fichier .zip. Comme la requête inclut un nouveau contenu de fichier, le lien edit-media de l'entrée de la pièce jointe est utilisé.

Notez que l'inclusion de l'ETag dans 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

Haut de page



Suppression du 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 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 bien été supprimée, le serveur renvoie une réponse 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 l'ait mise à jour ou non depuis que vous l'avez récupérée, utilisez If-Match: * et n'incluez pas l'ETag. Dans ce cas, il n'est pas nécessaire 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.

Haut de page



Téléchargement 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 src <content> de l'entrée. 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"/>

Haut de page

Flux LCA

Présentation des autorisations de partage (LCA)

Chaque entrée de la LCA du flux LCA représente un rôle d'accès accordé à une entité spécifique : un utilisateur, un groupe d'utilisateurs, un domaine ou l'accès par défaut (qui est un site public). Les entrées ne s'affichent que pour les entités disposant d'un accès explicite. Une seule entrée est affichée pour chaque adresse e-mail dans le panneau "Personnes disposant d'un 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 ont un accès implicite à un site.

Rôles

L'élément de rôle représente un niveau d'accès qu'une entité peut avoir. Quatre valeurs sont possibles pour l'élément gAcl:role:

  • lecteur : lecteur (équivalent à un accès en lecture seule)
  • writer : collaborateur (équivalent à un accès en lecture/écriture).
  • owner : en général 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é qui dispose de ce niveau d'accès. Il existe cinq types d'élément gAcl:scope:

  • utilisateur : valeur d'adresse e-mail, par exemple "utilisateur@gmail.com".
  • group : adresse e-mail d'un groupe Google (par exemple, "groupe@domaine.com").
  • domaine : nom de domaine G Suite, par exemple "domaine.com".
  • inviter : utilisateur qui a été invité sur le site, mais qui n'a pas encore été ajouté à la LCA de ce site. (Non disponible si gdata 1.3 ou version antérieure est spécifié.)
  • default : il n'existe qu'un seul champ d'application possible de type "default", qui n'a aucune valeur (par exemple, <gAcl:scope type="default">). Ce champ d'application particulier contrôle l'accès de tout utilisateur par défaut sur un site public.

Remarque: Les domaines ne peuvent pas avoir de valeur gAcl:role définie sur l'accès "propriétaire". Ils ne peuvent être que des lecteurs ou des rédacteurs.

À propos du champ d'application "invitation"

L'API renvoie le champ d'application de l'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 aux utilisateurs invités pour leur permettre d'accepter l'invitation.

Cette méthode d'invitation vous permet d'inviter des utilisateurs n'appartenant pas à Google sans connaître au préalable l'adresse e-mail qu'ils souhaitent utiliser. Tant que les utilisateurs cliquent sur l'URL d'invitation contenant le jeton intégré, ils peuvent s'inscrire pour y accéder en utilisant l'adresse e-mail de leur choix. En outre, plusieurs utilisateurs peuvent se servir de cette URL pour accepter l'invitation. Cette option 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 gdata version 1.4 ou ultérieure. Cette méthode 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 de fluxDescription
domainName"site" ou le domaine de votre domaine hébergé par G Suite (par exemple, example.com).
siteNameNom de l'espace Web de votre site, indiqué dans son URL (par exemple, myCoolSite).

Notez que chaque entrée du flux de 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 renvoie une réponse 200 OK et un flux d'entrées de la liste de contrôle d'accès:

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

Haut de page

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

Dans cet exemple, un nouveau collaborateur (rédacteur) est ajouté 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>

Si l'insertion est réussie, un élément 201 Created et la nouvelle entrée sont renvoyés:

<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 "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, 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 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 au sein d'un groupe Google ou d'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"/>

Partage avec un domaine entier:

<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/domaine1.com/siteA ne peut partager le site entier qu'avec domaine1.com, et non avec domaine2.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-la selon vos besoins et 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 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>

Suppression des 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 enverra la réponse 200 OK.

Haut de page

Sujets spéciaux

Récupérer 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é, vous pouvez améliorer l'efficacité en indiquant au serveur de n'envoyer la liste ou l'entrée que si elle a été modifiée 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 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, que vous trouverez dans l'attribut gd:etag de l'élément <feed> ou <entry>.

Exemple utilisant le flux d'un 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 demandé possède le même ETag que celui que vous avez spécifié. Si les ETag correspondent, l'élément n'a pas changé 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 ETag ne correspondent pas, cela signifie que l'élément a été modifié depuis la dernière fois que vous l'avez demandé et que le serveur le renvoie.

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 dans une seule requête, au lieu d'envoyer chaque opération individuellement.

Le serveur effectuera autant de modifications demandées que possible et renverra des informations d'état que vous pourrez utiliser pour évaluer le succès ou l'échec de chaque opération. Pour plus d'informations sur le traitement par lot dans les API Google Data, consultez la page Traitement par lot avec les API Google Data.

Chaque opération d'un flux groupé comporte un élément <id>, à l'exception des opérations d'insertion. Cet élément est identique à l'URL de requête que vous utilisez normalement lorsque vous mettez à jour, supprimez ou interrogez 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. Il est utilisé pour 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 envoyer une requête par lot, créez un flux par lot et envoyez une requête HTTP POST au lien de 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="&quot;YDgpeyI.&quot;">
    <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
    <batch:operation type='update'/>
    <category scheme="http://schemas.google.com/g/2005#kind"
        term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
    <title>Updated Title for Webpage2</title>
    ...
    <batch:operaation type="update"/>
  </entry>
  <entry gd:etag="&quot;YassseyI.&quot;">
    <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
    <batch:operation type='delete'/>
  </entry>
</feed>

Le flux renvoyé contiendra 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="&quot;YDgpsdfeyI.&quot;">
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
  <published>2009-08-31T04:42:45.251Z</published>
  <updated>2009-10-25T22:46:13.729Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T22:46:13.671Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind"
      term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>Page Title</title>
  ...
  <batch:status code="200" reason="Success"/>
  <batch:operation type="query"/>
</entry>
<entry gd:etag="&quot;YDsseyI.&quot;">
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID4</id>
  <published>2009-11-10T22:44:08.531Z</published>
  <updated>2009-11-10T22:44:08.560Z</updated>
  <app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T22:44:08.531Z</app:edited>
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
  <title>New Webpage1</title>
  <content type="xhtml">
    <div xmlns="http://www.w3.org/1999/xhtml">
    <table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox">
      <tbody>
        <tr>
          <td class="sites-layout-tile sites-tile-name-content-1">
            <div>HTML body goes here</div>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</content>
...
<batch:id>1</batch:id>
<batch:status code="201" reason="Created"/>
<batch:operation type="insert"/>
</entry>
<entry gd:etag="&quot;YDkpeyI.&quot;">
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
  <updated>2009-11-10T22:44:09.296Z</updated>
  <title>Updated Title for Webpage2</title>
  ...
  <sites:pageName>updated-title-for-webpage2</sites:pageName>
  <sites:revision>5</sites:revision>
  <batch:status code="200" reason="Success"/>
  <batch:operation type="update"/>
</entry>
<entry>
  <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
  <title>Deleted</title>
  <content>Deleted</content>
  <batch:status code="200" reason="Success"/>
  <batch:operation type="delete"/>
</entry>
</feed>

Haut de page