Guía de protocolo

La versión clásica de la API de Google Sites permite que tus aplicaciones accedan a contenido dentro de un sitio de Google, así como también lo publiquen y lo modifiquen. Además, la aplicación puede solicitar una lista de la actividad reciente, recuperar el historial de revisión y subir o descargar archivos adjuntos.

Público

En este documento, se da por sentado que comprendes las ideas generales del protocolo de API de datos de Google.

Este documento está dirigido a programadores que desean crear aplicaciones cliente que puedan interactuar con Google Sites. Proporciona una serie de ejemplos de interacciones básicas de la API de datos con XML/HTTP sin procesar, con explicaciones. Después de leer este documento, puedes obtener más información para interactuar con la API mediante nuestras bibliotecas cliente. Para ello, lee los ejemplos específicos de cada lenguaje que se encuentran en las otras guías de la barra de navegación izquierda.

Para obtener una referencia del material de esta guía, consulta la guía de referencia.

Autorizar solicitudes

Cuando tu aplicación solicita datos del usuario que no son públicos, debe incluir un token de autorización. El token también identifica tu aplicación ante Google.

Acerca de los protocolos de autorización

Tu aplicación debe usar OAuth 2.0 para autorizar solicitudes. No se admiten otros protocolos de autorización. Si tu aplicación usa Acceder con Google, tú controlarás algunos aspectos de la autorización.

Solicitudes de autorización con OAuth 2.0

Las solicitudes a la API de datos de Google Sites para obtener datos de usuario que no son públicos deben contar con la autorización de un usuario autenticado.

Los detalles del proceso de autorización, o "flujo", para OAuth 2.0 varían de alguna manera según el tipo de aplicación que estás escribiendo. El siguiente proceso general se aplica a todos los tipos de aplicación:

  1. Cuando crees tu aplicación, deberás registrarla con Google API Console. Luego, Google proporcionará la información que necesites más tarde, como el ID y un secreto del cliente.
  2. Activa la API de datos de Google Sites en la Consola de API de Google. Si no aparece en la consola de API, omite este paso.
  3. Cuando la aplicación necesite acceder a datos del usuario, solicita a Google un alcance de acceso en particular.
  4. Google mostrará una pantalla de consentimiento al usuario, en la que le pedirá que permita a la aplicación solicitar algunos de sus datos.
  5. Si el usuario la aprueba, Google le otorgará a la aplicación un token de acceso de corta duración.
  6. La aplicación solicitará los datos del usuario y adjuntará el token de acceso a la solicitud.
  7. Si Google determina que la solicitud y el token son válidos, mostrará los datos solicitados.

Algunos flujos requieren pasos adicionales, como el uso de tokens de actualización, para adquirir nuevos tokens de acceso. Si deseas obtener información detallada sobre los flujos para varios tipos de aplicaciones, consulta la documentación de OAuth 2.0 de Google.

A continuación, encontrarás información sobre el alcance de OAuth 2.0 para la API de datos de Google Sites:

https://sites.google.com/feeds/

Para solicitar acceso con OAuth 2.0, tu aplicación necesita los datos del alcance, además de la información que Google proporciona cuando registras la aplicación (como el ID y el secreto del cliente).

Volver al principio

Cómo especificar una versión

Cada solicitud que se realice a la API de datos de Google Sites debe especificar la versión 1.4. Para especificar un número de versión, usa el encabezado HTTP GData-Version:

GData-Version: 1.4

De manera alternativa, si no puedes configurar encabezados HTTP, puedes especificar v=1.4 como parámetro de consulta en la URL. Pero se prefiere el encabezado HTTP siempre que sea posible.

Nota: Las bibliotecas cliente proporcionan los encabezados de versión adecuados de forma automática, por lo que no debes usar el parámetro de consulta v=1.4 cuando utilices una biblioteca cliente.

Volver al principio

Feed del sitio

El feed del sitio se puede usar para mostrar una lista de los sitios de Google que un usuario posee o para los que tiene permisos de visualización, y también para modificar el título de un sitio existente. En el caso de los dominios de G Suite, también se puede usar para crear o copiar un sitio completo.

Enumera sitios

Para mostrar una lista de los sitios a los que tiene acceso un usuario, envía una solicitud GET autenticada a la siguiente URL:

https://sites.google.com/feeds/site/domainName
Parámetro del feedDescripción
domainName"site" o el dominio de tu dominio alojado en G Suite (p.ej., example.com).

La respuesta contendrá un feed con una lista de sitios:

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>

Los sitios se muestran en orden alfabético.

Creación de sitios nuevos

Nota: Esta función solo está disponible para los dominios de G Suite.

Se pueden aprovisionar sitios nuevos mediante una POST HTTP al feed del sitio, por ejemplo:

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 solicitud anterior crearía un nuevo sitio de Google con el tema "cortinilla" en el dominio de G Suite example.com. La URL del sitio sería http://sites.google.com/a/example.com/sitio-fuente/.

Si el sitio se creó correctamente, el servidor responderá con 201 Created. La entrada de respuesta contendrá elementos que agregó el servidor, como un vínculo al sitio, un vínculo al feed de LCA del sitio, el nombre del sitio, el título y el resumen.

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

Copia un sitio

Nota: Esta función solo está disponible para los dominios de G Suite.

Un sitio existente se puede duplicar de la misma manera que se crea un sitio nuevo. Sin embargo, en la entrada Atom de la solicitud POST, incluye un <link> con rel='source' que dirija al feed del sitio que se copiará. Todos los sitios que se hayan copiado tienen este enlace. A continuación, se muestra un ejemplo para duplicar un sitio:

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 solicitud anterior copiaría el sitio en http://sites.google.com/a/example.com/sitio-fuente/ (source-site/).

Puntos importantes:

  • Solo se pueden copiar los sitios y las plantillas de sitios que pertenecen al usuario autenticado.
  • También se puede copiar una plantilla para sitios. Un sitio es una plantilla si el parámetro de configuración "Publicar este sitio como plantilla" está marcado en la página de configuración de Google Sites.
  • Puedes copiar un sitio de otro dominio, aunque aparezcas como propietario en el sitio de origen.

Actualizar los metadatos de un sitio

Para actualizar el título o resumen de un sitio, envía un PUT HTTP al vínculo edit de la entrada de un sitio. En el siguiente ejemplo, se actualizará el título del sitio anterior a New Test Site2 y su descripción a 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>

Cómo agregar categorías

Nota: Esta función solo está disponible para los dominios de G Suite.

Los sitios de G Suite para tus dominios incluyen metadatos de categorías que son útiles para categorizar los sitios en tu dominio. Para agregar o actualizar los metadatos de la categoría, envía una etiqueta PUT de HTTP al vínculo edit de la entrada de tu sitio que incluya una etiqueta category. Observa la línea en negrita del siguiente ejemplo:

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>

En este ejemplo, se edita un sitio existente y se agrega la categoría "Sitio del equipo".

También puedes agregar varias categorías agregando etiquetas <category> adicionales. Observa las líneas en negrita del siguiente ejemplo:

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>

En este ejemplo, se agregan dos categorías: "Sitio del equipo" y "Departamento legal".

Asignaciones de direcciones web

Las asignaciones de direcciones web permiten a los usuarios de Sites asignar sus propios dominios a un Sitio de Google. Por ejemplo, se puede usar http://www.mydomainsite.com en lugar de http://sites.google.com/a/domain.com/mysite. Según dónde esté alojado tu sitio, puedes modificar manualmente las asignaciones de direcciones web de un sitio. Para obtener más información, consulta el artículo de nuestro Centro de ayuda.

Cómo recuperar las asignaciones de direcciones web de un sitio

Para mostrar las asignaciones de direcciones web de un sitio, recupera la entrada del sitio o el feed con el parámetro 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>

Las asignaciones existentes se mostrarán como link con rel='webAddressMapping'. En el ejemplo anterior, hay tres webAddressMapping que apuntan al sitio http://sites.google.com/site/myOtherTestSite.

Modifica las asignaciones de direcciones web

Nota: Todas las operaciones GET/POST/PUT deben especificar el parámetro with-mappings=true cuando se trabaja con asignaciones de direcciones web. Si el parámetro está ausente, no se mostrarán webAddressMapping en las entradas del sitio (GET) ni se tendrán en cuenta cuando se actualicen o quiten las asignaciones (PUT) de una entrada.

Para agregar, actualizar o borrar una asignación, simplemente especifica, cambia o quita el vínculo cuando crees sitios nuevos o actualices los metadatos de un sitio. El parámetro with-mappings=true debe incluirse en el URI del feed del sitio. Nota: Para actualizar las asignaciones de direcciones, debes ser un administrador del sitio o un administrador de dominio en el caso de un sitio alojado en G Suite.

Por ejemplo, la siguiente solicitud actualiza la asignación de http://www.mysitemapping.com a http://www.my-new-sitemapping.com y quita http://www.mysitemapping2.com si no incluyes el vínculo en la entrada:

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>

Ten en cuenta que las asignaciones de direcciones web también se pueden especificar al momento de crear o copiar un sitio.

Volver al principio

Feed de actividad

Para recuperar la actividad reciente de un sitio (los cambios), puedes obtener el feed de actividad. Cada entrada del feed de actividad contiene información sobre un cambio que se realizó en el sitio.

Para consultar el feed de actividad, envía un HTTP GET a la URL del feed de actividad:

https://sites.google.com/feeds/activity/domainName/siteName
Parámetro del feedDescripción
domainName"site" o el dominio de tu dominio alojado en G Suite (p.ej., example.com).
siteNameEs el nombre del espacio web de tu sitio, que se encuentra en la URL del sitio (p.ej., myCoolSite).

Ejemplo de solicitud y respuesta:

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>

Nota: Para acceder a este feed, debes ser colaborador o propietario del sitio. Tu cliente debe enviar el encabezado Authorization correcto y hacer referencia al token obtenido en Autoriza solicitudes.

Volver al principio

Feed de revisiones

Para recuperar el historial de revisión de cualquier entrada de contenido, envía un GET HTTP al vínculo de revisión de la entrada:

https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parámetro del feedDescripción
domainName"site" o el dominio de tu dominio alojado en G Suite (p.ej., example.com).
siteNameEs el nombre del espacio web de tu sitio, que se encuentra en la URL del sitio (p.ej., myCoolSite).

Para encontrar el vínculo de las revisiones de una página, un comentario, un archivo adjunto o una lista de elementos determinados, primero recupera la entrada del canal de contenido con su CONTENT_ENTRY_ID. La entrada recuperada contendrá un elemento <atom:link> al feed de revisión. Por ejemplo:

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

Ejemplo de solicitud y respuesta:

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>

Nota: Para acceder a este feed, debes ser colaborador o propietario del sitio. Tu cliente debe enviar el encabezado Authorization correcto y hacer referencia al token obtenido en Autoriza solicitudes.

Volver al principio

Canal de contenido

Cómo recuperar contenido

El canal de contenido enumera el contenido actual de los sitios de Sites. Envía una solicitud GET autenticada a la siguiente URL:

https://sites.google.com/feeds/content/domainName/siteName
Parámetro del feedDescripción
domainName"site" o el dominio de tu dominio alojado en G Suite (p.ej., example.com).
siteNameEs el nombre del espacio web de tu sitio, que se encuentra en la URL del sitio (p.ej., myCoolSite).

El resultado es un feed que enumera la primera página de entradas de contenido en el sitio. Cada entrada del feed representará un tipo diferente de entrada de contenido, como webpage, filecabinet, attachment, comment, etc. El elemento <category scheme="http://schemas.google.com/g/2005#kind"> determina el tipo de entrada. Consulta la guía de referencia para obtener una lista de los valores kind admitidos.

Nota: Este feed puede requerir autenticación o no, según los permisos de uso compartido del sitio. Si el sitio no es público, tu cliente debe enviar el encabezado Authorization correcto (como se ve en el ejemplo anterior) y hacer referencia al token obtenido en Autoriza solicitudes.

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>

Nota: Estos son solo los primeros resultados. Para desplazarte por todo el canal de contenido, sigue el vínculo "siguiente" del feed:

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

Para obtener una explicación de los elementos comunes de Atom, consulta la referencia del Protocolo de datos de Google. A continuación, se describen los elementos que contienen una métrica específica de la API de la versión clásica de Sites. Algunas entradas de tipo tendrán propiedades adicionales (no se enumeran a continuación), mientras que otras no. Por ejemplo, una entrada listitem puede tener elementos <gs:field>, mientras que una entrada webpage no los tiene.

ElementoDescripción
<content ...>El texto interno es el cuerpo HTML de la página. En el caso de algunas entradas (p.ej., archivos adjuntos), este elemento contendrá un atributo src que apunta al archivo.
<link rel="alternate" ...>Vínculo a la página o al elemento en Google Sites.
<link rel="http://schemas.google.com/sites/2008#revision" ...>El atributo href apunta al feed de revisión de la entrada.
<link rel="http://schemas.google.com/sites/2008#parent" ...>El atributo href apunta a la entrada principal de la entrada.
<link rel="http://schemas.google.com/sites/2008#template" ...>El atributo href apunta a la página de la plantilla de la entrada.
<category scheme="http://schemas.google.com/g/2005#kind" ...>label es el tipo de entrada.
<category term="http://schemas.google.com/g/2005#template" ...>label=template: Significa que la entrada es una plantilla.
<gd:feedLink>El atributo href apunta a los elementos secundarios del elemento superior de la entrada.
<sites:pageName>Nombre del espacio web de la página; corresponde al nombre de la URL de la página.
<sites:revision>Número de revisión actual.

Ejemplos de consultas de feeds de contenido

Puedes buscar en el feed de contenido con algunos de los parámetros de consulta estándar de la API de datos de Google y aquellos específicos de la API de la versión clásica de Sites. Para obtener información más detallada y una lista completa de los parámetros admitidos, consulta la Guía de referencia.

Cómo recuperar tipos de entradas específicos

Para recuperar solo un tipo de entrada en particular, usa el parámetro kind. En este ejemplo, solo se muestran entradas webpage:

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

Para mostrar más de un tipo de entrada, separa cada kind con un ",". En este ejemplo, se muestran las entradas filecabinet y listpage:

GET /feeds/content/domainName/siteName?kind=filecabinet,listpage

Como alternativa, puedes usar el formato estándar para una consulta /-/category de datos de Google en lugar del parámetro kind:

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

Recuperando plantillas de página

En este ejemplo, solo se muestran páginas de template:

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

Para mostrar todos los tipos de entrada y, además, incluir páginas template, usa lo siguiente:

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

Cómo recuperar una página por ruta

Si conoces la ruta relativa de una página dentro del sitio de Google, puedes usar el parámetro path para recuperar esa página en particular. En este ejemplo, se mostraría la página ubicada en http://sites.google.com/site/siteName/path/to/the/page:

GET /feeds/content/domainName/siteName?path=/path/to/the/page

Recuperar todas las entradas de una página principal

Si conoces el ID de entrada de una página, puedes usar el parámetro parent para recuperar todas sus entradas secundarias (si las hay):

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

Incluye borradores o entradas eliminadas

Para incluir entradas en borrador o borradas, usa los parámetros include-drafts o include-deleted, respectivamente. En este ejemplo, se incluyen entradas en borrador en el feed de contenido:

GET /feeds/content/domainName/siteName?include-drafts=true

Búsqueda en el texto completo

Para buscar en todo el contenido de un sitio, usa el parámetro q para emitir una búsqueda en el texto completo:

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

Volver al principio



Creación de contenido

Puedes crear contenido nuevo (páginas web, páginas de listas, páginas de gabinetes de archivos, páginas de anuncios, etc.) enviando un POST HTTP al feed de contenido:

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

Para obtener una lista de los tipos de entrada admitidos, consulta el parámetro kind en la Guía de referencia.

Creación de páginas o elementos nuevos

En este ejemplo, se crea una webpage nueva en el nivel superior del sitio, se incluyen algunos elementos XHTML para el cuerpo de la página y se establece el título del encabezado como "New WebPage Title":

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 se ejecuta de forma correcta, el servidor responde con 201 Created y una copia de la entrada.

Creación de elementos o páginas en rutas de URL personalizadas

De forma predeterminada, el ejemplo anterior se crearía bajo la URL http://sites.google.com/domainName/siteName/new-webpage-title y tendría un encabezado de página de "Título de página web nuevo". Es decir, la <atom:title> se normaliza en new-webpage-title para la URL. Para personalizar la ruta de URL de una página, puedes configurar el elemento <sites:pageName>.

En este ejemplo, se crea una filecabinet nueva con el encabezado de página "File Storage", pero se crea la página en la URL http://sites.google.com/domainName/siteName/files mediante la especificación del elemento <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>

El servidor usa las siguientes reglas de prioridad para nombrar la ruta de URL de una página:

  1. <sites:pageName>, si está presente Debe cumplir con a-z, A-Z, 0-9, -, _.
  2. <atom:title> no debe ser nulo si pageName no está presente. La normalización consiste en recortar + contraer los espacios en blanco a "-" y quitar los caracteres que no coincidan con a-z, A-Z, 0-9, -, _.

Por ejemplo, el servidor aceptará 'Custom_Page2'.

Cómo crear subpáginas

Para crear subpáginas (secundarias) en una página superior, incluye un <link rel="http://schemas.google.com/sites/2008#parent"> en tu nueva entrada de Atom. Establece el atributo href del vínculo en el vínculo propio de la entrada principal.

En este ejemplo, se crea un objeto announcement nuevo con el encabezado "anuncio" en una página de anuncios superior con el ID de entrada PARENT_ENTRY_ID. También se incluye contenido XHTML para el cuerpo de la página:

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>

Plantillas de páginas

Cómo crear plantillas de página

El proceso para crear una plantilla de página es el mismo que crear elementos o páginas nuevos y crear subpáginas.La diferencia es agregar el category con el término y la etiqueta establecidos en “http://schemas.google.com/g/2005#template” y “template”, respectivamente.

En este ejemplo, se crea una plantilla webpage nueva.

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>

Cómo crear páginas a partir de una plantilla

Al igual que cuando creas plantillas de página, puedes crear una instancia de una página nueva a partir de una plantilla si incluyes un <link> con rel='http://schemas.google.com/sites/2008#template' que apunte al vínculo propio de una plantilla de página.

En este ejemplo, se crea una página filecabinet nueva a partir de una plantilla de página existente que define un gabinete de archivos.

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>

Nota: A pesar de que una plantilla define un <category>, aún es obligatorio incluir uno en tu entrada. Además, ten en cuenta que, si incluyes un elemento <content>, el servidor lo rechazará.

Cómo subir archivos

Al igual que en Google Sites, la API te permite subir archivos adjuntos a las páginas principales y del gabinete de archivos.

Para subir un archivo adjunto a un elemento superior, envía una solicitud HTTP POST a la URL del canal de contenido:

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

El cuerpo de POST debe ser una solicitud de varias partes MIME para combinar el contenido del archivo con un <atom:entry> que contenga los metadatos del adjunto. El <atom:entry> debe hacer referencia al vínculo propio de la entrada superior para especificar dónde se creará el adjunto. Consulta Cómo crear subpáginas para obtener más información.

Subiendo archivos adjuntos

A continuación, te mostramos un ejemplo de cómo subir un archivo PDF a un gabinete de archivos con el ID PARENT_ENTRY_ID. El adjunto se creará con el título "Archivo PDF" y una descripción (opcional), "Paquete de 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 la carga se realiza correctamente, el servidor responderá con 201 Created y con una copia de la entrada del archivo adjunto recién creado.

Sube un archivo adjunto a una carpeta

Para subir un archivo adjunto a una carpeta existente en un archivo filecabinet, incluye una categoría con el atributo 'term' establecido en el nombre de la carpeta:

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

Archivos adjuntos web

Los archivos adjuntos web son tipos de archivos adjuntos especiales. En esencia, son vínculos a otros archivos de la Web que puedes agregar a las fichas de tu gabinete de archivos. Esta función es similar al método de carga “Agregar archivo mediante URL” en la IU de Google Sites.

Nota: Los archivos adjuntos web solo se pueden crear en un gabinete de archivos. No se pueden subir a otros tipos de páginas.

En este ejemplo, se crea un webattachment en el gabinete de archivos al que hace referencia el ID FILECABINET_ENTRY_ID. El título y la descripción (opcional) están configurados en 'GoogleLogo' y 'colores lindo', respectivamente.

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>

El objeto POST crea un vínculo en el gabinete de archivos del usuario que apunta a la imagen que se encuentra en "http://www.google.com/images/logo.gif".

Volver al principio



Actualización de contenido

Los metadatos (título, pageName, etc.) y el contenido de cualquier página se pueden editar con una sola solicitud PUT al vínculo edit. El cuerpo de la solicitud debe contener una entrada Atom que describa la página actualizada. La excepción a esta regla es una entrada de archivo adjunto, en la que la entrada solo se puede usar para actualizar los metadatos del archivo adjunto. Para cambiar el contenido del archivo adjunto, solo incluye los datos sin procesar como cuerpo de una solicitud PUT en el vínculo edit-media del adjunto. También puedes actualizar los metadatos y el contenido de los archivos adjuntos a la vez mediante una solicitud de varias partes MIME.

Para confirmar que tu actualización no reemplace los cambios de otro cliente, incluye el valor de ETag de la entrada original. Para ello, proporciona el valor de ETag en un encabezado HTTP If-Match o incluye el atributo gd:etag de la entrada original en la entrada actualizada. Para determinar el valor de ETag de la entrada original, examina el atributo gd:etag del elemento <entry>. Para las entradas multimedia, la ETag del contenido multimedia puede estar disponible en el atributo gd:etag del vínculo edit-media.

Si deseas actualizar la entrada sin importar si alguien la actualizó desde que la recuperaste, usa If-Match: * y no incluyas la ETag. Para obtener más información sobre las ETags, consulta la guía de referencia de las APIs de datos de Google.

Actualizar los metadatos o el contenido HTML de un elemento

Para actualizar los metadatos o el contenido HTML de una entrada, envía una PUT HTTP al vínculo edit de la entrada.

A continuación, se muestra un ejemplo de actualización de una entrada listpage (representada por su ID ENTRY_ID) con los siguientes cambios:

  • El título se modificó a "Contenido actualizado"
  • Contenido HTML actualizado
  • El encabezado de la primera columna de la lista se actualiza a "Propietario"
  • La ruta de URL de la página se modifica con el elemento <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>

Nota: La entrada (como la muestra el servidor) contendrá más elementos que en el ejemplo anterior.

Cómo reemplazar el contenido de un archivo adjunto

A continuación, se muestra un ejemplo de cómo reemplazar el contenido de un archivo adjunto, pero no modificar los metadatos. Como la solicitud incluye contenido nuevo, se usa el vínculo edit-media de la entrada del archivo adjunto.

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

Cómo actualizar el contenido y los metadatos de los archivos adjuntos

A continuación, se muestra un ejemplo de cómo actualizar los metadatos de un archivo adjunto y su contenido al mismo tiempo. El nombre de los archivos adjuntos se actualizará a “Título nuevo” y su contenido se reemplazará por el contenido de un archivo ZIP. Como la solicitud incluye contenido de archivo nuevo, se usa el vínculo edit-media de la entrada del archivo adjunto.

Ten en cuenta que incluir la ETag para los metadatos también proporciona un If-Match implícito para el contenido multimedia, ya que cualquier actualización del contenido multimedia hace que la ETag de los metadatos cambie.

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

Volver al principio



Eliminación de contenido

Para quitar un elemento de un sitio de Google, primero recupera la entrada y, luego, envía una solicitud DELETE a la URL edit de la entrada. Es la misma URL que se usa cuando se actualizan los metadatos o el contenido HTML de un elemento.

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 la entrada se borró correctamente, el servidor responde con una HTTP 200 OK.

Si deseas asegurarte de no borrar una entrada que otro cliente haya cambiado desde que la recuperaste, incluye un encabezado HTTP If-Match que contenga el valor ETag de la entrada original. Para determinar el valor de ETag de la entrada original, examina el atributo gd:etag del elemento <entry>.

Si deseas borrar la entrada sin importar si otra persona la actualizó desde que la recuperaste, usa If-Match: * y no incluyas la ETag. (en este caso, no es necesario recuperar la entrada antes de borrarla).

Para obtener más información sobre las ETags, consulta la guía de referencia de las APIs de datos de Google.

Volver al principio



Descargando archivos adjuntos

Una vez que tengas una entrada de archivo adjunto, puedes descargar el archivo enviando un GET HTTP autenticado al vínculo <content> src de la entrada. Ejemplo de vínculo de contenido de un PDF:

<content type="application/pdf"
  src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>

Volver al principio

Feed de LCA

Descripción general de los permisos de uso compartido (LCA)

Cada entrada de LCA en el feed de LCA representa una función de acceso de una entidad en particular, ya sea un usuario, un grupo de usuarios, un dominio o el acceso predeterminado (que es un sitio público). Las entradas solo se mostrarán para las entidades con acceso explícito; se mostrará una entrada para cada dirección de correo electrónico en el panel "Personas con acceso" en la pantalla para compartir de la IU de Google Sites. Por lo tanto, no se mostrarán los administradores de dominio, aunque tengan acceso implícito a un sitio.

Roles

El elemento de rol representa un nivel de acceso que puede tener una entidad. Hay cuatro valores posibles para el elemento gAcl:role:

  • reader: Un lector (equivalente al acceso de solo lectura).
  • escritor: Es un colaborador (equivalente a acceso de lectura/escritura).
  • owner: Por lo general, es el administrador del sitio (equivalente al acceso de lectura y escritura).

Permisos

El elemento de alcance representa a la entidad que tiene este nivel de acceso. Existen cinco tipos posibles del elemento gAcl:scope:

  • user: Un valor de dirección de correo electrónico, p. ej., "usuario@gmail.com".
  • group: Una dirección de correo electrónico del Grupo de Google, p. ej., "grupo@dominio.com".
  • domain: Un nombre de dominio de G Suite, p. ej., "domain.com".
  • invitación: un usuario que fue invitado al sitio, pero que todavía no se agregó a la LCA del sitio. (No está disponible si se especifica gdata 1.3 o una versión anterior).
  • default: Solo hay un alcance posible del tipo "default", que no tiene valor (p. ej., <gAcl:scope type="default">). Este alcance en particular controla el acceso que cualquier usuario tiene de forma predeterminada en un sitio público.

Nota: Los dominios no pueden tener un valor gAcl:role configurado como acceso de “propietario”, solo pueden ser lectores o escritores.

Acerca del alcance "invitación".

La API muestra el alcance de la invitación cuando se agrega uno o más usuarios a la LCA que aún no tienen una cuenta de Google. La API muestra una URL con un token incorporado que debe proporcionar a los usuarios invitados para permitirles aceptar la invitación.

Este método de invitación te permite invitar a usuarios ajenos a Google sin saber qué dirección de correo electrónico desean usar. Siempre que los usuarios hagan clic en la URL de invitación con el token incorporado, podrán registrarse para acceder con la dirección de correo electrónico que deseen. Además, es posible que varios usuarios utilicen esta URL para aceptar la invitación, lo que puede ser útil si se invita a un usuario o a un grupo de usuarios.

Nota: El alcance "invite" solo está disponible en gdata 1.4 y versiones posteriores. Esto no funcionará si especificas explícitamente 1.3 o una anterior.

Recupera el feed de LCA

El feed de LCA se puede usar para controlar los permisos de uso compartido de un sitio y se puede acceder a él a través del siguiente URI:

https://sites.google.com/feeds/acl/site/domainName/siteName
Parámetro del feedDescripción
domainName"site" o el dominio de tu dominio alojado en G Suite (p.ej., example.com).
siteNameEs el nombre del espacio web de tu sitio, que se encuentra en la URL del sitio (p.ej., myCoolSite).

Ten en cuenta que cada entrada del feed del sitio contiene un vínculo a ese feed:

 <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml"
      href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>

Para recuperar los permisos de uso compartido de un sitio, envía un HTTP GET al URI del feed de LCA:

GET /feeds/acl/site/domainName/siteName HTTP/1.1
Host: sites.google.com
GData-Version: 1.4
Authorization: <your authorization header here>

El servidor responderá con 200 OK y un feed de entradas 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>

Volver al principio

Compartir un sitio

El feed de LCA acepta solicitudes GET, POST y PUT. Para insertar una función nueva en el feed de LCA, solo envía una solicitud POST al feed de LCA del sitio.

Nota: Ciertas LCA de uso compartido solo pueden ser posibles si el dominio está configurado para permitir esos permisos (p.ej., si está habilitado el uso compartido fuera del dominio para dominios de G Suite, etcétera).

En este ejemplo, se agrega a un nuevo colaborador (escritor) al sitio:

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>

Una 201 Created y la entrada nueva se muestran cuando se realiza una inserción de forma correcta:

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

Cómo invitar a usuarios mediante el alcance "invitar"

Si agregas usuarios que no tienen Cuentas de Google, la API mostrará una URL que debes proporcionar a los usuarios que desees invitar. Luego de hacer clic en la URL, el cliente podrá obtener acceso al sitio con una cuenta existente o creando una nueva.

Una invitación correcta muestra un 201 Created y una entrada nueva que incluye la URL que debes pasar al usuario:

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

Uso compartido a nivel de grupo y dominio

Al igual que con compartir un sitio con un solo usuario, puedes compartir un sitio a través de un Grupo de Google o un dominio de G Suite. Los valores scope necesarios se enumeran a continuación.

Compartir contenido con la dirección de correo electrónico de un grupo:

<gAcl:scope type="group" value="group@example.com"/>

Se comparte con todo un dominio:

<gAcl:scope type="domain" value="example.com"/>

El uso compartido a nivel del dominio solo se admite en los dominios de G Suite y en el dominio en el que se aloja el sitio. Por ejemplo, http://sites.google.com/a/dominio1.com/sitioA solo puede compartir el sitio completo con el dominio1.com, no con el dominio2.com. Los sitios que no estén alojados en un dominio de G Suite (p.ej., http://sites.google.com/sitio/sitioB) no pueden invitar a dominios.

Cómo modificar los permisos de uso compartido

Para actualizar una entrada de LCA, modifica la entrada según sea necesario y emite una solicitud PUT HTTP al vínculo edit de la entrada, que es simplemente un elemento <link>, cuyo atributo "rel" está configurado como "edit". En el ejemplo anterior, ese vínculo es el siguiente:

<link rel='edit' type='application/atom+xml'
    href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>

El siguiente fragmento cambia la función de new_writer@gmail.com a "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>

Eliminar permisos de uso compartido

Para quitar los permisos de este usuario, emite una solicitud DELETE al mismo vínculo edit que se usó para la solicitud 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>

El servidor responderá con 200 OK.

Volver al principio

Temas especiales

Cómo volver a recuperar un feed o una entrada

Si deseas recuperar un feed o una entrada que ya recuperaste antes, puedes mejorar la eficiencia si le indicas al servidor que envíe la lista o la entrada solo si cambió desde la última vez que la recuperaste.

Para realizar este tipo de recuperación condicional, envía una solicitud HTTP GET que incluya un encabezado HTTP If-None-Match. En el encabezado, especifica la ETag de la lista o de la entrada, que se puede encontrar en el atributo gd:etag del elemento <feed> o del elemento <entry>.

Ejemplo del uso del feed del sitio:

GET /feeds/site/domainName/myOtherTestSite/
GData-Version: 1.4
If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."

Cuando el servidor recibe esta solicitud, comprueba si el elemento que solicitaste tiene la misma ETag que la que especificaste. Si los ETags coinciden, significa que el elemento no cambió y el servidor muestra un código de estado HTTP 304 Not Modified o un código de estado HTTP 412 Precodition Failed. Ambos códigos de estado indican que el elemento que ya recuperaste está actualizado.

Si los ETags no coinciden, el elemento se modificó desde la última vez que lo solicitaste y el servidor lo muestra.

Para obtener más información sobre las ETags, consulta la guía de referencia de las APIs de datos de Google.

Procesamiento por lotes

Las solicitudes por lotes ofrecen a tu cliente la capacidad de ejecutar varias operaciones en una solicitud, en lugar de enviar cada operación de forma individual.

El servidor realizará tantos cambios solicitados como sea posible y mostrará información de estado que puedes usar para evaluar el éxito o el fracaso de cada operación. Para obtener más detalles sobre el procesamiento por lotes en la API de datos de Google, consulta Procesamiento por lotes con las APIs de datos de Google

Cada operación de un feed por lotes posee un elemento <id>, excepto para las operaciones de inserción. Este elemento es el mismo que la URL de solicitud que normalmente usarías al actualizar, borrar o consultar el feed de contenido. Por ejemplo, si quieres actualizar una edición, establece <id> en el vínculo edit de la entrada en cuestión. Se usa para identificar la entrada objetivo. Las entradas nuevas no tienen elementos <id>, ya que aún no se crearon. En su lugar, puedes definir un valor de string en <batch:id>, que se mostrará en la respuesta del servidor y se usará para buscar la entrada correspondiente.

Para realizar una solicitud por lotes, crea un feed por lotes y envía un POST HTTP al vínculo de lote del feed:

<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml"
    href="https://sites.google.com/feeds/content/site/siteName/batch"/>

El siguiente ejemplo muestra cómo consultar, insertar, actualizar y eliminar una entrada de una página 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>

El feed devuelto contendrá una entrada de resultado para cada operación:

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

Volver al principio