A API Google Sites clássico permite que seus aplicativos acessem, publiquem e modifiquem o conteúdo de um site Google. Além disso, o aplicativo pode solicitar uma lista de atividades recentes, buscar o histórico de revisões e fazer upload/download de anexos e arquivos.
Público-alvo
Este documento pressupõe que você conhece os conceitos gerais por trás do protocolo das APIs de dados do Google.
Este documento se destina a programadores que desejam criar aplicativos clientes que possam interagir com o Google Sites. Ele fornece uma série de exemplos de interações de API de dados básicos usando XML/HTTP bruto, com explicações. Depois de ler este documento, você pode saber mais sobre como interagir com a API usando nossas bibliotecas de cliente lendo o exemplos específicos de linguagem encontrados em outros guias na barra de navegação à esquerda.
Para ter uma referência do material deste guia, consulte o guia de referência.
Como autorizar solicitações
Quando seu aplicativo solicita dados do usuário não públicos, ele precisa incluir um token de autorização. O token também identifica o aplicativo para o Google.
Sobre os protocolos de autorização
O aplicativo deve obrigatoriamente usar o OAuth 2.0 para autorizar solicitações. Não há outros protocolos de autorização compatíveis. Se o aplicativo usa o Fazer login com o Google, alguns aspectos da autorização são administrados para você.
Autorizar solicitações com OAuth 2.0
Solicitações para a API de dados do Google Sites para dados de usuário não públicos devem ser autorizadas por um usuário autenticado.
Os detalhes do processo de autorização ou “fluxo” para o OAuth 2.0 variam um pouco, dependendo do tipo de aplicativo que você está criando. O processo geral a seguir se aplica a todos os tipos de aplicativo:
- Ao criar seu aplicativo, registre-o usando o Console de APIs do Google. Em seguida, o Google fornece informações que serão usadas mais tarde, como um ID e uma chave secreta do cliente.
- Ative a API de dados do Google Sites no Console de APIs do Google. Se ela não estiver no Console de APIs, pule essa etapa.
- Quando seu aplicativo precisar de acesso aos dados do usuário, ele solicitará ao Google um determinado escopo do acesso.
- O Google exibe uma tela de consentimento ao usuário, pedindo para que o aplicativo seja autorizado a solicitar alguns dos dados dele.
- Se o usuário aprovar, o Google fornecerá ao aplicativo um token de acesso de curta duração.
- O aplicativo solicita dados de usuário, anexando o token de acesso à solicitação.
- Se o Google determinar que a solicitação e o token são válidos, ele retornará os dados solicitados.
Alguns fluxos incluem etapas adicionais, como atualizar tokens para adquirir novos tokens de acesso. Para mais informações sobre fluxos de vários tipos de aplicativos, acesse a documentação OAuth 2.0 do Google.
Veja as informações de escopo do OAuth 2.0 para a API de dados do Google Sites:
https://sites.google.com/feeds/
Para solicitar acesso usando o OAuth 2.0, seu aplicativo precisa de informações do escopo, bem como informações fornecidas pelo Google durante o registro do aplicativo, como o ID e a chave secreta do cliente.
Como especificar uma versão
Cada solicitação para a API de dados do Google Sites deve especificar a versão 1.4. Para especificar um número de versão,
use o cabeçalho HTTP GData-Version
:
GData-Version: 1.4
Como alternativa, se não for possível definir cabeçalhos HTTP, especifique v=1.4
como um parâmetro de consulta no URL. Mas o
Recomendamos o uso do cabeçalho HTTP sempre que possível.
Observação: as bibliotecas de cliente fornecem automaticamente os cabeçalhos de versão apropriados. Portanto, não
use o parâmetro de consulta v=1.4
ao utilizar uma biblioteca de cliente.
Feed do site
O feed de site pode ser usado para listar os Google Sites dos quais um usuário possui ou tem permissões de visualização e modificar o título de um site existente. Para domínios do G Suite, ele também pode ser usado para criar ou copiar um o site inteiro.
Listar sites
Para listar os sites a que um usuário tem acesso, envie uma solicitação GET
autenticada para o seguinte URL:
https://sites.google.com/feeds/site/domainName
Parâmetro de feed | Descrição |
---|---|
domainName | "site " ou o domínio do seu domínio hospedado pelo G Suite (por exemplo, example.com ). |
A resposta conterá um feed com uma lista de sites:
GET /feeds/site/domainName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/site/site</id> <updated>2009-12-02T17:47:34.406Z</updated> <title>Site</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/site/site"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/feeds/site/domainName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName"/> <link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/?start-index=2"/> <generator version="1" uri="http://sites.google.com/">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"CkUAQH4_eil7I2A9WxNaFk4.""> <id>https://sites.google.com/feeds/site/site/myTestSite</id> <updated>2009-12-01T01:17:21.042Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T01:17:21.042Z</app:edited> <title>myTestSite</title> <summary/> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myTestSite/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myTestSite"/> <sites:siteName>myTestSite</sites:siteName> <sites:theme>default</sites:theme> </entry> <entry gd:etag="W/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Memories Site"/> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <sites:siteName>myOtherTestSite</sites:siteName> <sites:theme>iceberg</sites:theme> </entry> ... </feed>
Os sites são listados em ordem alfabética.
Como criar novos sites
Observação: esse recurso só está disponível para domínios do G Suite.
Novos sites podem ser provisionados fazendo um POST
HTTP para o feed do site, por exemplo:
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>
A solicitação acima criaria um novo site Google com a "barreira" no domínio example.com
do G Suite.
O URL do site seria http://sites.google.com/a/example.com/source-site/.
Se o site for criado corretamente, o servidor responderá com 201 Created
.
A entrada de resposta conterá elementos adicionados pelo servidor, como um link para o
site, um link para o feed de ACL do site, o nome do site, título e resumo.
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>New Test Site</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/source-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <sites:siteName>source-site</sites:siteName> <sites:theme>slate</sites:theme> </entry>
Copiar um site
Observação: esse recurso só está disponível para domínios do G Suite.
Um site existente pode ser duplicado da mesma forma que a criação de um novo site. No entanto, na entrada Atom da solicitação POST
,
Inclua um <link>
com rel='source'
apontando para o feed do site a ser copiado. Qualquer site que tenha
copiado terão esse link. Aqui está um exemplo de duplicação de um 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>
A solicitação acima copiaria o site em http://sites.google.com/a/example.com/source-site/.
Pontos importantes:
- Só é possível copiar sites e modelos de sites que o usuário autenticado possui.
- Um modelo de site também pode ser copiado. Um site é um modelo se a opção "Publicar este site como modelo" está marcada na página de configurações do Google Sites.
- Você pode copiar um site de outro domínio caso esteja listado como proprietário no site de origem.
Atualizar os metadados de um site
Para atualizar o título ou o resumo de um site, envie um PUT
HTTP para o link edit
de uma entrada do site.
Por exemplo, o exemplo a seguir atualizará o título do site anterior para New Test Site2
e seu
para Newer description
.
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>New Test Site2</title> <summary>Newer description</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Category"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/source-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/source-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/source-site"/> <sites:siteName>source-site</sites:siteName> </entry>
Adicionando categorias
Observação: esse recurso só está disponível para domínios do G Suite.
O G Suite nos seus sites do domínio inclui metadados de categoria que são úteis para categorizar os sites no seu domínio. Para adicionar ou atualizar metadados de categoria, envie um PUT
HTTP para o link edit
da entrada do seu site que inclua uma tag category
. Veja a linha em negrito no exemplo a seguir:
PUT /feeds/site/example.com/source-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/source-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>My Team website</title> <summary>This site contains contact information and a summary of major efforts our team owns</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site"/> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <sites:siteName>my-team-site</sites:siteName> </entry>
Este exemplo edita um site existente e adiciona a categoria "Site da equipe".
Também é possível adicionar várias categorias adicionando outras tags <category>
. Veja as linhas em negrito no exemplo a seguir:
PUT /feeds/site/example.com/my-team-site HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/"DEECR38l7I2A9WxNaF0Q.""> <id>https://sites.google.com/feeds/site/example.com/my-team-site</id> <updated>2009-12-02T23:31:06.184Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-02T23:31:06.184Z</app:edited> <title>My Team website</title> <summary>This site contains contact information and a summary of major efforts our team owns</summary> <category scheme="http://schemas.google.com/sites/2008#tag" term="Team Site/"> <category scheme="http://schemas.google.com/sites/2008#tag" term="Legal Department/"> <link rel="alternate" type="text/html" href="http://sites.google.com/a/example.com/my-team-site/"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/example.com/my-team-site"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/example.com/my-team-site"/> <sites:siteName>my-team-site</sites:siteName> </entry>
Este exemplo adiciona duas categorias: "Site da equipe" e "Departamento jurídico"
Mapeamentos de endereços da Web
Os mapeamentos de endereços da Web permitem que os usuários do Google Sites mapeiem os próprios domínios para um site Google. Por exemplo, http://www.mydomainsite.com
.
pode ser usada em vez de http://sites.google.com/a/domain.com/mysite
. Dependendo de onde seu site está hospedado, você pode modificar manualmente uma
os mapeamentos de endereços da Web do seu site. Consulte nosso artigo da Central de Ajuda para mais informações.
Buscar os mapeamentos de endereços da Web de um site
Para retornar os mapeamentos de endereços da Web de um site, busque a entrada/feed do site com o 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/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel='webAddressMapping' href='http://www.mysitemapping.com'> <link rel='webAddressMapping' href='http://www.mysitemapping2.com'> <link rel='webAddressMapping' href='http://www.myothermapping.org'> </entry> ... </feed>
Os mapeamentos atuais vão aparecer como link
s com rel='webAddressMapping'. Por exemplo, no exemplo acima,
há três webAddressMapping
s que apontam para o site.
http://sites.google.com/site/myOtherTestSite
.
Modificar mapeamentos de endereços da Web
Observação: todas as operações GET/POST/PUT devem especificar o parâmetro with-mappings=true
ao trabalhar
com mapeamentos de endereços da Web. Se o parâmetro estiver ausente, webAddressMapping
s não serão retornados nas entradas de site (GET) nem considerados
ao atualizar/remover mapeamentos (PUT) de uma entrada.
Para adicionar, atualizar ou excluir um mapeamento, basta especificar, alterar ou remover esse link ao criar novos sites ou
atualizar os metadados de um site. O parâmetro with-mappings=true
precisa ser incluído no URI do feed de site.
Observação: para atualizar os mapeamentos de endereços, você precisa ser um administrador do site ou um administrador do domínio no caso de um site hospedado pelo G Suite.
Por exemplo, a solicitação abaixo atualiza o mapeamento http://www.mysitemapping.com
para http://www.my-new-sitemapping.com
,
e remove o http://www.mysitemapping2.com
deixando o link de fora da 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/"DkQGQHczfA9WxNaFk4.""> <id>https://sites.google.com/feeds/site/domainName/myOtherTestSite</id> <updated>2009-12-01T02:25:21.987Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T02:25:21.987Z</app:edited> <title>myOtherTestSite</title> <summary>A new site to hold memories</summary> <link rel="alternate" type="text/html" href="http://sites.google.com/site/myOtherTestSite"/> <link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/myOtherTestSite"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/site/domainName/myOtherTestSite"/> <link rel='webAddressMapping' href='www.my-new-sitemapping.com'> <!-- missing mapping2 will be deleted --> <link rel='webAddressMapping' href='http://www.myothermapping.org'> </entry>
Observação: os mapeamentos de endereços da Web também podem ser especificados ao criar/copiar um site.
Feed de atividades
Você pode buscar as atividades recentes (alterações) de um site buscando o feed de atividades. Cada entrada na o feed de atividades contém informações sobre uma mudança feita no site.
Para consultar o feed de atividades, envie um GET
HTTP para o URL do feed de atividades:
https://sites.google.com/feeds/activity/domainName/siteName
Parâmetro de feed | Descrição |
---|---|
domainName | "site " ou o domínio do seu domínio hospedado pelo G Suite (por exemplo, example.com ). |
siteName | O nome do espaço web do seu site; encontrado no URL do site (por exemplo, myCoolSite ). |
Exemplo de solicitação e resposta:
GET /feeds/activity/site/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"> <id>https://sites.google.com/feeds/activity/site/siteName</id> <updated>2009-09-10T05:24:23.120Z</updated> <title>Activity</title> <link rel="alternate" type="text/html" href="http://sites.google.com/site/siteName/system/app/pages/recentChanges"/> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU4GQ3szfSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/940375996952876062</id> <updated>2009-09-10T03:38:42.585Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#deletion" label="deletion"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User deleted <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/940375996952876062"/> <author> <name>User</name> <email>user@gmail.com</email> </author> </entry> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU8DQn45fyl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/7165439066235480082</id> <updated>2009-09-10T03:37:53.027Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#edit" label="edit"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User2 edited <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/7165439066235480082"/> <author> <name>User</name> <email>user@gmail.com</email> </author> </entry> <entry xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"CU8AR3s4cSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/activity/site/siteName/127448462987345884</id> <updated>2009-09-10T03:37:26.539Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#creation" label="creation"/> <title>home</title> <summary type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">User3 created <a href="http://sites.google.com/site/siteName/home">home</a> </div> </summary> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/site/siteName/5409745539831916487"/> <link rel="http://schemas.google.com/sites/2008#current" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/5409745539831916487"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/activity/site/siteName/127448462987345884"/> <author> <name>User3</name> <email>user3@gmail.com</email> </author> </entry> </feed>
Observação: para acessar o feed, você precisa ser um colaborador ou proprietário do site.
O cliente precisa enviar o cabeçalho Authorization
correto e fazer referência ao token recebido
em Como autorizar solicitações.
Feed de revisão
Para buscar o histórico de revisões de qualquer entrada de conteúdo, envie um GET
HTTP para o link de revisão da entrada:
https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parâmetro de feed | Descrição |
---|---|
domainName | "site " ou o domínio do seu domínio hospedado pelo G Suite (por exemplo, example.com ). |
siteName | O nome do espaço web do seu site; encontrado no URL do site (por exemplo, myCoolSite ). |
Para encontrar o link de revisões de uma determinada página/comentário/anexo/listitem, primeiro recupere a entrada de
o feed de conteúdo usando seu CONTENT_ENTRY_ID. A entrada recuperada conterá um <atom:link>
no feed de revisão.
Exemplo:
<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"/>
Exemplo de solicitação e resposta:
GET /feeds/revision/domainName/siteName/CONTENT_ENTRY_ID HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID</id> <updated>2009-09-10T04:33:35.337Z</updated> <title>Revisions</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"CU4GQmA9WxNRFUg.""> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2</id> <updated>2009-09-10T03:38:42.045Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Home</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Latest content here</div> </content> <link rel="alternate" type="text/html" href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4f67c7&rev1=2"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/2"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>2</sites:revision> </entry> <entry gd:etag="W/"CU8DQ388eSl7ImA9WxNRFUg.""> <id>https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1</id> <updated>2009-09-10T03:37:52.171Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Home</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Older content here</div> </content> <link rel="alternate" type="text/html" href="http://sites.google.com/domainName/siteName/CONTENT_ENTRY_ID/system/app/pages/admin/compare?wuid=wuid%3Agx%3A4bc7&rev1=1"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID/1"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>home</sites:pageName> <sites:revision>1</sites:revision> </entry> </feed>
Observação: para acessar o feed, você precisa ser um colaborador ou proprietário do site.
Seu cliente precisa enviar o cabeçalho Authorization
correto e fazer referência ao token recebido
em Como autorizar solicitações.
Feed de conteúdo
Recuperando conteúdo
O feed de conteúdo lista o conteúdo atual de um site Google. Envie uma solicitação GET
autenticada para o seguinte URL:
https://sites.google.com/feeds/content/domainName/siteName
Parâmetro de feed | Descrição |
---|---|
domainName | "site " ou o domínio do seu domínio hospedado pelo G Suite (por exemplo, example.com ). |
siteName | O nome do espaço web do seu site; encontrado no URL do site (por exemplo, myCoolSite ). |
O resultado é um feed que lista a primeira página das entradas de conteúdo no site. Cada entrada no feed representará um tipo diferente de entrada de conteúdo,
como webpage
, filecabinet
, attachment
, comment
etc. O
O elemento <category scheme="http://schemas.google.com/g/2005#kind">
determina o tipo de entrada. Consulte o guia de referência.
para uma lista de valores kind
de suporte.
Observação: esse feed pode exigir autenticação ou não. dependendo das permissões de compartilhamento do site.
Se o site não for público, seu cliente precisará enviar o cabeçalho Authorization
correto, como mostrado no exemplo acima.
e faça referência ao token recebido em Como autorizar solicitações.
GET /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> HTTP/1.1 200 OK <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/content/domainName/siteName</id> <updated>2009-08-31T01:39:20.286Z</updated> <title>Content</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/batch""/> <link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="W/"Ck8GQXk7fil7ImA9WxNSFk0.""> <id>https://sites.google.com/feeds/content/domainName/siteName/7322156894</id> <updated>2009-08-30T02:53:40.706Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:53:40.706Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Subpage</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/6492205817"/> <link rel="alternate" type="text" href="http://sites.google.com/site/siteName/subpage"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/7322156894"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/7322156894"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:pageName>subpage</sites:pageName> <sites:revision>5</sites:revision> </entry> <entry gd:etag="W/"CkMBQH08fCl7ImA9WxNSFk0.""> <id>https://sites.google.com/feeds/content/domainName/siteName/5930635231</id> <updated>2009-08-30T02:47:31.374Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T02:47:31.374Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listitem" label="listpage"/> <title/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/5930635231"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/5930635231"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <sites:revision>1</sites:revision> <gs:field index="A" name="Issue/Feature">Implement cool feature X</gs:field> <gs:field index="B" name="Priority">P2</gs:field> <gs:field index="C" name="Owner"/> <gs:field index="D" name="Resolved"/> </entry> <entry gd:etag="W/"AkYHQ3ozcCl7ImA9WxJaE08.""> <id>https://sites.google.com/feeds/content/domainName/siteName/1265948545471894517</id> <updated>2009-08-03T19:35:32.488Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T19:35:32.488Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#filecabinet" label="filecabinet"/> <title>files</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Page html content here</div> </content> <link rel="alternate" type="text" href="https://sites.google.com/domainName/siteName/files"/> <link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="https://sites.google.com/feeds/revision/domainName/siteName/12671894517"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/12671894517"/> <author> <name>User</name> <email>user@gmail.com</email> </author> <gd:feedLink href="httpn://sites.google.com/feeds/content/domainName/siteName?parent=12671894517"/> <sites:pageName>files</sites:pageName> <sites:revision>1</sites:revision> </entry> ... </feed>
Observação: estes são apenas os primeiros resultados. Para folhear todo o feed de conteúdo, siga o "próximo" do feed Link:
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
Para ver uma explicação dos elementos comuns ao Atom, consulte a referência do protocolo de dados do Google (em inglês).
Os elementos que têm uma medida específica na API Sites clássico são descritos abaixo. Certas entradas de tipo terão propriedades adicionais (não listadas abaixo), enquanto
outras não. Por exemplo, uma entrada listitem
pode ter elementos <gs:field>
, enquanto uma entrada webpage
não.
Elemento | Descrição |
---|---|
<content ...> | O texto interno é o corpo HTML da página. Para algumas entradas (por exemplo, anexos), esse elemento vai conter um atributo src que aponta para o arquivo. |
<link rel="alternate" ...> | Link para a página ou item no Google Sites. |
<link rel="http://schemas.google.com/sites/2008#revision" ...> | O atributo href aponta para o feed de revisão da entrada. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | O atributo href aponta para a entrada pai da entrada. |
<link rel="http://schemas.google.com/sites/2008#template" ...> | O atributo href aponta para a página de modelo da entrada. |
<category scheme="http://schemas.google.com/g/2005#kind" ...> | label é o tipo de entrada. |
<category term="http://schemas.google.com/g/2005#template" ...> | label=template , indicando que a entrada é um modelo. |
<gd:feedLink> | O atributo href aponta para os filhos do pai da entrada. |
<sites:pageName> | Nome do espaço web da página que corresponde ao nome no URL da página. |
<sites:revision> | Número de revisão atual. |
Exemplos de consulta do feed de conteúdo
Você pode pesquisar o feed de conteúdo usando alguns dos parâmetros de consulta padrão da API de dados do Google e aqueles específicos da API Sites clássico. Para informações mais detalhadas e uma lista completa de parâmetros compatíveis, consulte a Guia de referência.
Como recuperar tipos de entrada específicos
Para buscar apenas um tipo específico de entrada, use o parâmetro kind
. Este exemplo retorna apenas webpage
entradas:
GET /feeds/content/domainName/siteName?kind=webpage
Para retornar mais de um tipo de entrada, separe cada kind
com uma ",". Esse exemplo retorna filecabinet
e
listpage
entradas:
GET /feeds/content/domainName/siteName?kind=filecabinet,listpage
Também é possível usar o formato padrão para uma consulta /-/category
de dados do Google em vez do parâmetro kind
:
GET /feeds/content/domainName/siteName/-/filecabinet|listpage
Como recuperar modelos de páginas
Este exemplo retorna apenas páginas template
:
GET /feeds/content/domainName/siteName/-/template
Para retornar todos os tipos de entrada e incluir páginas template
, use:
GET /feeds/content/domainName/siteName/-/template|-template
Como recuperar uma página por caminho
Se você sabe o caminho relativo de uma página no site Google, pode usar o parâmetro path
para buscar essa página específica.
Esse exemplo retornaria a página localizada em
http://sites.google.com/site/siteName/path/to/the/page
:
GET /feeds/content/domainName/siteName?path=/path/to/the/page
Como recuperar todas as entradas em uma página pai
Se você souber o ID de entrada de uma página, poderá usar o parâmetro parent
para buscar todas as entradas filhas (se houver):
GET /feeds/content/domainName/siteName?parent=CONTENT_ENTRY_ID
Incluindo rascunhos ou entradas excluídas
Para incluir entradas de rascunho ou excluídas, use os parâmetros include-drafts
ou include-deleted
, respectivamente.
Este exemplo inclui entradas de rascunho no feed de conteúdo:
GET /feeds/content/domainName/siteName?include-drafts=true
Pesquisa de texto completo
Para pesquisar em todo o conteúdo de um site, use o parâmetro q
para realizar uma pesquisa de texto completo:
GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for
Criação de conteúdo
Novo conteúdo (páginas da Web, de lista, de arquivo, de avisos etc.) pode ser criado enviando uma solicitação HTTP POST
ao feed de conteúdo:
https://sites.google.com/feeds/content/domainName/siteName
Para ver uma lista de tipos de entrada compatíveis, consulte o parâmetro kind
no Guia de referência.
Criar novos itens / páginas
Esse exemplo cria um novo webpage
no nível superior do site e inclui um código hexadecimal para o corpo da página.
e define o título como "Novo título da página da 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>
Se for bem-sucedido, o servidor responderá com um 201 Created
e uma cópia da entrada.
Criar itens/páginas em caminhos de URL personalizados
Por padrão, o exemplo anterior seria criado no URL
http://sites.google.com/domainName/siteName/new-webpage-title
e
tenham o cabeçalho "Novo título da página da Web". Ou seja, o <atom:title>
é normalizado para new-webpage-title
no URL.
Para personalizar o caminho do URL de uma página, defina o elemento <sites:pageName>
.
Este exemplo cria um novo filecabinet
com o título de página "Armazenamento de arquivos", mas cria a página
no URL http://sites.google.com/domainName/siteName/files
por
especificando o 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>
O servidor usa as seguintes regras de precedência para nomear o caminho do URL de uma página:
<sites:pageName>
, se presente. Precisa atender aa-z, A-Z, 0-9, -, _
.<atom:title>
, não poderá ser nulo se pageName não estiver presente. A normalização é cortar e recolher o espaço em branco para '-' e remove caracteres não correspondentes aa-z, A-Z, 0-9, -, _
.
Por exemplo, "Custom_Page2" seria aceito pelo servidor.
Como criar subpáginas
Para criar subpáginas (filhas) em uma página principal, inclua um <link rel="http://schemas.google.com/sites/2008#parent">
na sua
nova entrada Atom. Defina o atributo href
do link como o self link da entrada pai.
Este exemplo cria um novo announcement
com o título "aviso", na página de avisos principal com uma entrada.
ID PARENT_ENTRY_ID
. O conteúdo xHTML para o corpo da página também está incluído:
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>
Modelos da página
Como criar modelos de página
O processo de criação de um modelo de página é o mesmo que o de criação de novos itens/páginas e
criar subpáginas.A diferença é a adição de category
com o termo e o rótulo definidos como "http://schemas.google.com/g/2005#template"
e "modelo", respectivamente.
Este exemplo cria um novo modelo 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>
Como criar páginas com base em um modelo
Semelhante à criação de modelos de página, você pode instanciar uma nova página de um modelo incluindo um <link>
com rel='http://schemas.google.com/sites/2008#template' apontando
para o self link de um modelo de página.
Este exemplo cria uma nova página filecabinet
com base em um modelo de página existente que define um arquivo.
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>
Observação: apesar de um modelo definir um <category>
, incluindo um no seu
ainda é necessária. Além disso, se você incluir um elemento <content>
, ele será rejeitado pelo servidor.
Como fazer upload de arquivos
Assim como no Google Sites, a API permite que você faça upload de anexos para as páginas de arquivo e as principais.
Para fazer o upload de um anexo em um arquivo pai, envie uma solicitação POST
HTTP para o URL do feed de conteúdo:
https://sites.google.com/feeds/content/domainName/siteName
O corpo POST
precisa ser uma solicitação MIME de várias partes para combinar o conteúdo do arquivo com
um <atom:entry>
contendo os metadados do anexo. O <atom:entry>
precisa referenciar
o link self da entrada pai, para especificar onde o anexo será criado.
Consulte Como criar subpáginas para mais informações.
Fazendo upload dos anexos
Veja um exemplo de upload de um arquivo PDF para um arquivo com ID PARENT_ENTRY_ID
. O anexo será criado
com o título "Arquivo PDF" e uma descrição (opcional), "HR package".
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--
Se o upload for bem-sucedido, o servidor responderá com um 201 Created
e uma cópia da entrada de anexo recém-criada.
Fazer upload de um anexo para uma pasta
Para fazer upload de um anexo em uma pasta em um arquivo filecabinet
, inclua uma categoria com o termo "termo". definido como o nome da pasta:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">
Anexos da Web
Anexos da Web são tipos especiais de anexos. Eles são links para outros arquivos na Web que você pode adicionar a suas listagens de arquivo. Esse recurso é análogo à opção "Adicionar arquivo por URL" de upload na interface do usuário do Google Sites.
Observação: anexos da Web só podem ser criados em um arquivo. Eles não podem ser enviados para outros tipos de páginas.
Este exemplo cria um webattachment
no arquivo referenciado pelo ID FILECABINET_ENTRY_ID
.
O título e a descrição (opcional) estão definidos como "GoogleLogo". e "cores bonitas", 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>
O POST
cria um link no arquivo do usuário que aponta para a imagem em "http://www.google.com/images/logo.gif".
Atualizar conteúdo
Os metadados (título, pageName etc.) e o conteúdo de qualquer página podem ser editados com uma única solicitação PUT
para o link edit
.
O corpo da solicitação deve conter uma entrada Atom descrevendo a página atualizada. A exceção a essa regra é uma entrada de anexo, na qual a entrada só pode ser usada para atualizar os metadados do anexo.
Para alterar o conteúdo do arquivo anexado, basta incluir os dados brutos como o corpo de uma solicitação PUT
para o
link edit-media
do anexo. Você também pode atualizar os metadados e o conteúdo do arquivo anexado de uma só vez usando um
Solicitação MIME de várias partes.
Para declarar que a atualização não substitui as alterações de outro cliente, inclua o valor da ETag da entrada original. Você pode fazer isso
fornecendo o valor da ETag em um cabeçalho HTTP If-Match
ou incluindo o atributo gd:etag
da entrada original no
entrada atualizada. Para determinar o valor da ETag da entrada original, examine o atributo gd:etag
do elemento <entry>
.
Para entradas de mídia, a ETag da mídia pode estar disponível no atributo gd:etag
do link edit-media
.
Caso queira atualizar a entrada mesmo que outra pessoa a tenha atualizado desde que você a recuperou, use
If-Match: *
e não incluem a ETag. Para mais informações sobre as ETags, acesse a
Guia de referência das APIs de dados do Google.
Como atualizar os metadados ou o conteúdo HTML de um item
Para atualizar os metadados ou o conteúdo HTML de uma entrada, envie um PUT
HTTP para o link edit
da entrada.
Veja a seguir um exemplo de atualização de uma entrada listpage
(representada pelo ID ENTRY_ID
) com as seguintes alterações:
- O título é modificado para "Conteúdo atualizado".
- Conteúdo HTML atualizado
- O cabeçalho da primeira coluna da lista é atualizado para "Proprietário"
- O caminho do URL da página é modificado pelo 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/"CEEBRn0ymA9WxJWEUw.""> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#listpage" label="listpage"/> <title>Updated Title</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">Updated Content</div> </content> <gs:worksheet name="listpage"/> <gs:header row="1"/> <gs:data startRow="2"> <gs:column index="A" name="Owner"/> <gs:column index="B" name="Decription"/> <gs:column index="C" name="Completed"/> </gs:data> <sites:pageName>newPagePath</sites:pageName> </entry>
Observação: a entrada (conforme retornada pelo servidor) terá mais elementos do que o exemplo acima.
Substituir o conteúdo de um anexo
Abaixo há um exemplo de substituição do conteúdo de um anexo, mas sem alterar os metadados. Como a solicitação tem conteúdo novo,
o link edit-media
da entrada do anexo é usado.
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 ...
Atualizar os metadados e o conteúdo do anexo
Veja abaixo um exemplo de como atualizar os metadados e o conteúdo de um anexo ao mesmo tempo. O nome dos anexos será atualizado
como "Novo título" e seu conteúdo será substituído pelo conteúdo de um arquivo ZIP. Como a solicitação tem conteúdo novo, a
o link edit-media
da entrada do anexo é usado.
A inclusão da ETag para os metadados também fornece um If-Match
implícito para o conteúdo de mídia, porque qualquer atualização feita
o conteúdo de mídia faz com que a ETag dos metadados mude.
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
Excluindo conteúdo
Para remover um item de um site Google, primeiro recupere a entrada e envie um DELETE
.
para o URL edit
da entrada. Esse é o mesmo URL usado ao atualizar os metadados ou o conteúdo HTML de um item.
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>
Se a entrada tiver sido excluída corretamente, o servidor responderá com um 200 OK
HTTP.
Se quiser garantir que você não exclua uma entrada que tenha sido alterada por outro cliente desde que você a recuperou, inclua um
Cabeçalho HTTP If-Match
que contém o valor da ETag da entrada original. Você pode determinar o valor da ETag da entrada original
examinando o atributo gd:etag
do elemento <entry>
.
Se quiser excluir a entrada mesmo que outra pessoa a tenha atualizado desde que você a recuperou, use
If-Match: *
e não incluem a ETag. Nesse caso, não é necessário recuperar a entrada antes de excluí-la.
Para mais informações sobre ETags, consulte o Guia de referência das APIs de dados do Google.
Como fazer download de anexos
Quando tiver uma entrada de anexo, você poderá fazer o download do arquivo enviando um GET
HTTP autenticado para o
Link src <content>
. Um exemplo de link de conteúdo em um PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
Feed da ACL
Visão geral das permissões de compartilhamento (ACLs)
Cada entrada de ACL no feed de ACL representa um papel de acesso de uma entidade específica, seja um usuário, um grupo de usuários, um domínio, ou o acesso padrão (um site público). As entradas só serão mostradas para entidades com acesso explícito: uma entrada será mostrada para cada endereço de e-mail na seção "Pessoas com acesso" na tela de compartilhamento da interface do Google Sites. Assim, os administradores de domínio não serão exibidos, mesmo que tenham acesso implícito a um site.
Papéis
O elemento do papel representa o nível de acesso que uma entidade pode ter. Há quatro valores possíveis para o elemento gAcl:role
:
- reader: um leitor (equivalente ao acesso somente leitura).
- writer: um colaborador (equivalente ao acesso de leitura/gravação).
- owner: geralmente o administrador do site (equivalente ao acesso de leitura/gravação).
Escopos
O elemento de escopo representa a entidade que tem esse nível de acesso. Há cinco tipos possíveis do elemento gAcl:scope
:
- user: um valor de endereço de e-mail, por exemplo, "user@gmail.com".
- group: um endereço de e-mail de um Grupo do Google, por exemplo, "group@domain.com".
- domain: um nome de domínio do G Suite, como "domain.com".
- invite: um usuário que foi convidado para o site, mas ainda não foi adicionado à ACL do site. (Não disponível se o kube 1.3 ou abaixo for especificado.)
- default: há apenas um escopo possível do tipo "default", que não tem valor
(por exemplo,
<gAcl:scope type="default">
). Esse escopo específico controla o acesso que qualquer usuário tem por padrão em um site público.
Observação: os domínios não podem ter um valor gAcl:role
.
definido como "proprietário" acesso, eles só podem ser leitores ou escritores.
Sobre o "convite" do projeto.
A API retorna o escopo do convite quando você adiciona à ACL um ou mais usuários que ainda não têm uma Conta do Google. A API retorna um URL com um token incorporado que você deve fornecer aos usuários convidados para permitir que eles aceitem o convite.
Esse método de convite permite convidar usuários que não são do Google sem conhecimento prévio do endereço de e-mail que eles querem usar. Contanto que os usuários cliquem no URL de convite com o token incorporado, eles poderão se inscrever para acessar usando o endereço de e-mail que quiserem. Além disso, vários usuários podem usar esse URL para aceitar o convite, o que pode ser útil se você convidar um usuário ou um grupo de usuários.
Observação: o campo "convite" está disponível apenas na versão 1.4 ou superior do Tensorflow. Isso não funcionará se você especificar explicitamente a versão 1.3 ou inferior.
Como recuperar o feed da ACL
O feed da ACL pode ser usado para controlar as permissões de compartilhamento de um site e pode ser acessado por meio do seguinte URI:
https://sites.google.com/feeds/acl/site/domainName/siteName
Parâmetro de feed | Descrição |
---|---|
domainName | "site " ou o domínio do seu domínio hospedado pelo G Suite (por exemplo, example.com ). |
siteName | O nome do espaço web do seu site; encontrado no URL do site (por exemplo, myCoolSite ). |
É importante ressaltar que cada entrada no feed do site contém um link para esse 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 as permissões de compartilhamento de um site, envie um GET
HTTP para o URI de feed da ACL:
GET /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
O servidor responderá com um 200 OK
e um feed de entradas de ACL:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"> <id>https://sites.google.com/feeds/acl/site/domainName/siteName</id> <updated>2009-12-03T22:01:05.963Z</updated> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <title>Acl</title> <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/> <generator version="1" uri="http://sites.google.com">Google Sites</generator> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserA%40google.com"/> <gAcl:scope type="user" value="userA@google.com"/> <gAcl:role value="owner"/> </entry> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserB%40gmail.com"/> <gAcl:scope type="user" value="userB@gmail.com"/> <gAcl:role value="writer"/> </entry> <entry> <id>https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com</id> <updated>2009-12-03T22:01:05.963Z</updated> <app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T22:01:05.963Z</app:edited> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/acl/2007#accessRule"/> <link rel="self" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/> <link rel="edit" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName/user%3AuserC%40gmail.com"/> <gAcl:scope type="user" value="userC@gmail.com"/> <gAcl:role value="reader"/> </entry> ... </feed>
Como compartilhar um site
O feed da ACL aceita solicitações GET
, POST
e PUT
. Para inserir um novo papel no feed de ACL, basta emitir uma solicitação POST
para o feed de ACL do site.
Observação: algumas ACLs de compartilhamento só serão possíveis se o domínio estiver configurado para conceder essas permissões (por exemplo, se o compartilhamento fora do seu domínio para domínios do G Suite estiver ativado etc.).
Este exemplo adiciona um novo colaborador (escritor) ao 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>
Após uma inserção bem-sucedida, um 201 Created
e a nova entrada são retornados:
<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>
Convidar usuários pelo "convite" escopo
Se você adicionar usuários que não têm Contas do Google, a API retornará um URL que precisará ser fornecido aos usuários que você quiser convidar. Após clicar no URL, o usuário poderá acessar o site fazendo login com uma conta existente ou criando uma nova.
Um convite bem-sucedido retorna um 201 Created
e uma nova entrada que inclui o URL que você precisa transmitir ao usuário:
<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>
Compartilhamento no nível do grupo e do domínio
Como no compartilhamento de um site com um único usuário, é possível compartilhar um site em uma
Grupo do Google ou domínio do G Suite. Os valores scope
necessários estão listados abaixo.
Como compartilhar com um endereço de e-mail de grupo:
<gAcl:scope type="group" value="group@example.com"/>
Compartilhamento com um domínio inteiro:
<gAcl:scope type="domain" value="example.com"/>
O compartilhamento no nível do domínio só é compatível com domínios do G Suite e com o domínio em que o site está hospedado. Por exemplo, http://sites.google.com/a/domain1.com/siteA só pode compartilhar o site inteiro com dominio1.com, não com dominio2.com. Os sites não hospedados em um domínio do G Suite (por exemplo, http://sites.google.com/site/siteB) não podem convidar domínios.
Modificar permissões de compartilhamento
Para atualizar uma entrada da ACL, modifique a entrada conforme necessário e emita uma solicitação PUT
HTTP para o
edit
da entrada, que é simplesmente
um elemento <link>
, cujo "rel" está definido como "edit". No exemplo anterior, o link é:
<link rel='edit' type='application/atom+xml' href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>
O snippet abaixo muda o papel de new_writer@gmail.com
para "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>
Removendo permissões de compartilhamento
Para remover as permissões desse usuário, envie uma solicitação DELETE
para o mesmo link edit
usado na solicitação 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>
O servidor responderá com 200 OK
.
Tópicos especiais
Como recuperar um feed ou uma entrada novamente
Se você quiser recuperar um feed ou uma entrada que recuperou antes, pode melhorar a eficiência informando que o servidor envie a lista ou entrada somente se ela tiver sido alterada desde a última vez que você a recuperou.
Para fazer esse tipo de recuperação condicional, envie uma solicitação GET
HTTP que inclua uma solicitação
Cabeçalho If-None-Match
. No cabeçalho, especifique a ETag da lista ou da entrada, que você pode encontrar em
o atributo gd:etag
do elemento <feed>
ou <entry>
.
Um exemplo de uso do feed de site:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
Quando o servidor recebe essa solicitação, ele verifica se o item solicitado tem a mesma ETag que o
a ETag que você especificou. Se as ETags corresponderem, o item não foi alterado e o servidor retornará um
Código de status HTTP 304 Not Modified
ou um código de status HTTP 412 Precodition Failed
. Ambas as opções
os códigos de status indicam que o item que você já recuperou está atualizado.
Se as ETags não corresponderem, isso significa que o item foi modificado desde a última vez que você o solicitou e o servidor o retorna.
Para mais informações sobre ETags, consulte o Guia de referência das APIs de dados do Google.
Processamento em lote
As solicitações em lote dão ao cliente a capacidade de executar várias operações em uma solicitação, em vez de enviar cada operação individualmente.
O servidor realizará o maior número possível de alterações solicitadas e retornará informações de status que você pode usar para para avaliar o sucesso ou a falha de cada operação. Para mais detalhes sobre o processamento em lote na API de dados do Google, consulte Processamento em lote com as APIs de dados do Google
Toda operação em um feed em lote tem um elemento <id>, exceto operações de inserção.
Esse elemento é o mesmo que o URL de solicitação que você normalmente usaria ao atualizar, excluir ou consultar o feed de conteúdo.
Por exemplo, se você estiver atualizando uma edição, defina <id> como o link edit
para a entrada em questão.
Ele é usado para identificar a entrada de destino. As novas entradas não têm elementos <id> porque
ainda não foram criadas. Em vez disso, você pode definir um valor de string em <batch:id>, que será
retornado na resposta do servidor e usado para procurar a entrada correspondente.
Para fazer uma solicitação em lote, crie um feed em lote e envie um POST
HTTP para o link de lote do feed:
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="https://sites.google.com/feeds/content/site/siteName/batch"/>
O exemplo abaixo mostra como consultar, inserir, atualizar e excluir uma entrada de página da Web:
POST /feeds/content/site/siteName/batch HTTP/1.1 Host: sites.google.com Accept: */* If-Match: * GData-Version: 1.4 Authorization: <your authorization header here> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:batch='http://schemas.google.com/gdata/batch'> <entry> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id> <batch:operation type="query"/> </entry> <entry> <batch:id>1</batch:id> <batch:operation type='insert'/> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>New Webpage1</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">HTML body goes here</div> </content> </entry> <entry gd:etag=""YDgpeyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id> <batch:operation type='update'/> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/> <title>Updated Title for Webpage2</title> ... <batch:operaation type="update"/> </entry> <entry gd:etag=""YassseyI.""> <id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id> <batch:operation type='delete'/> </entry> </feed>
O feed retornado conterá uma entrada de resultado para cada operação:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006"
xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch"
xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<updated>2009-11-10T22:44:08.369Z</updated>
<title>Batch Feed</title>
<entry gd:etag=""YDgpsdfeyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID1</id>
<published>2009-08-31T04:42:45.251Z</published>
<updated>2009-10-25T22:46:13.729Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-25T22:46:13.671Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
<title>Page Title</title>
...
<batch:status code="200" reason="Success"/>
<batch:operation type="query"/>
</entry>
<entry gd:etag=""YDsseyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID4</id>
<published>2009-11-10T22:44:08.531Z</published>
<updated>2009-11-10T22:44:08.560Z</updated>
<app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T22:44:08.531Z</app:edited>
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webpage" label="webpage"/>
<title>New Webpage1</title>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox">
<tbody>
<tr>
<td class="sites-layout-tile sites-tile-name-content-1">
<div>HTML body goes here</div>
</td>
</tr>
</tbody>
</table>
</div>
</content>
...
<batch:id>1</batch:id>
<batch:status code="201" reason="Created"/>
<batch:operation type="insert"/>
</entry>
<entry gd:etag=""YDkpeyI."">
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID2</id>
<updated>2009-11-10T22:44:09.296Z</updated>
<title>Updated Title for Webpage2</title>
...
<sites:pageName>updated-title-for-webpage2</sites:pageName>
<sites:revision>5</sites:revision>
<batch:status code="200" reason="Success"/>
<batch:operation type="update"/>
</entry>
<entry>
<id>https://sites.google.com/feeds/content/site/siteName/ENTRY_ID3</id>
<title>Deleted</title>
<content>Deleted</content>
<batch:status code="200" reason="Success"/>
<batch:operation type="delete"/>
</entry>
</feed>