L'API della versione classica di Google Sites consente alle applicazioni di accedere, pubblicare e modificare i contenuti all'interno di un sito Google. Inoltre, l'applicazione può richiedere un elenco delle attività recenti, recuperare la cronologia delle revisioni e caricare/scaricare allegati e file.
Pubblico
In questo documento si presume che tu abbia compreso le idee generali alla base del protocollo delle API di dati di Google.
Questo documento è destinato ai programmatori che desiderano scrivere applicazioni client in grado di interagire con Google Sites. Fornisce una serie di esempi di interazioni API di dati di base utilizzando XML/HTTP non elaborati, con spiegazioni. Dopo aver letto questo documento, puoi scoprire di più sull'interazione con l'API utilizzando le nostre librerie client leggendo le esempi specifici per ogni lingua disponibili sulle altre guide nella barra di navigazione a sinistra.
Per un riferimento al materiale contenuto in questa guida, consulta la guida di riferimento.
Autorizzazione delle richieste
Quando la tua applicazione richiede dati utente non pubblici, deve includere un token di autorizzazione. Il token, inoltre, identifica l'applicazione per Google.
Informazioni sui protocolli di autorizzazione
La tua applicazione deve utilizzare il protocollo OAuth 2.0 per autorizzare le richieste. Non sono supportati altri protocolli di autorizzazione. Se la tua applicazione utilizza la funzionalità Accedi con Google, alcuni aspetti dell'autorizzazione vengono gestiti per te.
Autorizzazione delle richieste con OAuth 2.0
Le richieste all'API di dati di Google Sites relative a dati utente non pubblici devono essere autorizzate da un utente autenticato.
I dettagli della procedura di autorizzazione, o "flusso", per il protocollo OAuth 2.0 variano a seconda del tipo di applicazione che stai scrivendo. La seguente procedura generale si applica a tutti i tipi di applicazione:
- Quando crei la tua applicazione, la registri utilizzando la console API di Google. Quindi, Google fornisce informazioni che ti saranno necessarie in un secondo momento, ad esempio un ID client e un client secret.
- Attiva l'API Google Sites Data nella console API di Google. (Se l'API non è elencata nella console API, salta questo passaggio.)
- Quando la tua applicazione vuole accedere ai dati dell'utente, chiede a Google un particolare ambito di accesso.
- Google mostra una schermata di consenso all'utente, chiedendo di autorizzare l'applicazione a richiedere dei dati.
- Se l'utente approva, Google fornisce alla tua applicazione un token di accesso di breve durata.
- L'applicazione richiede i dati utente, allegando il token di accesso alla richiesta.
- Se Google ritiene validi la richiesta e il token, restituisce i dati richiesti.
Alcuni flussi includono passaggi aggiuntivi, come l'uso di token di aggiornamento per acquisire nuovi token di accesso. Per informazioni dettagliate sui flussi per vari tipi di applicazioni, consulta la documentazione relativa al protocollo OAuth 2.0 di Google.
Ecco le informazioni relative all'ambito OAuth 2.0 per l'API di dati di Google Sites:
https://sites.google.com/feeds/
Per richiedere l'accesso utilizzando il protocollo OAuth 2.0, l'applicazione richiede le informazioni relative all'ambito e le informazioni che Google fornisce quando registri la tua applicazione (ad esempio l'ID client e il client secret).
Specificare una versione
Ogni richiesta all'API di dati di Google Sites deve specificare una versione 1.4. Per specificare un numero di versione,
utilizza l'intestazione HTTP GData-Version
:
GData-Version: 1.4
In alternativa, se non puoi impostare le intestazioni HTTP, puoi specificare v=1.4
come parametro di query nell'URL. Ma
Se possibile, è preferibile utilizzare l'intestazione HTTP.
Nota: le librerie client forniscono automaticamente le intestazioni di versione appropriate, quindi
Utilizza il parametro di query v=1.4
se usi una libreria client.
Feed sito
Il feed del sito può essere utilizzato per elencare i siti di Google Sites di proprietà di un utente o per i quali dispone di autorizzazioni di visualizzazione e modificare anche il titolo di un sito esistente. Per i domini G Suite, può essere utilizzato anche per creare o copiare un l'intero sito.
Siti delle schede
Per elencare i siti a cui un utente ha accesso, invia una richiesta GET
autenticata al seguente URL:
https://sites.google.com/feeds/site/domainName
Parametro feed | Descrizione |
---|---|
domainName | "site " o il dominio del tuo dominio ospitato da G Suite (ad es. example.com ). |
La risposta conterrà un feed con un elenco di siti:
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>
I siti sono elencati in ordine alfabetico.
Creazione di nuovi siti
Nota: questa funzionalità è disponibile solo per i domini G Suite.
È possibile eseguire il provisioning dei nuovi siti effettuando un POST
HTTP al feed del sito, ad esempio:
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 richiesta precedente crea un nuovo sito Google con lo "slate" tema nel dominio G Suite example.com
.
L'URL del sito sarà http://sites.google.com/a/example.com/sito-origine/.
Se il sito viene creato correttamente, il server risponderà con 201 Created
.
La voce di risposta conterrà elementi aggiunti dal server, come un link alla
sito, un link al feed ACL del sito, il nome, il titolo e il riepilogo del sito.
<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>
Copia di un sito
Nota: questa funzionalità è disponibile solo per i domini G Suite.
Un sito esistente può essere duplicato nello stesso modo in cui si crea un nuovo sito. Tuttavia, nella voce Atom della richiesta POST
,
includi un <link>
con rel='source'
che rimanda al feed del sito da copiare. Qualsiasi sito con
copiata avrà questo link. Ecco un esempio per la duplicazione di un sito:
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 richiesta precedente copierà il sito all'indirizzo http://sites.google.com/a/example.com/source-site/.
Punti importanti:
- Puoi copiare solo i siti e i modelli di siti di proprietà dell'utente autenticato.
- Puoi anche copiare un modello di sito. Un sito è un modello se l'opzione "Pubblica questo sito come modello" sia selezionata nella pagina delle impostazioni di Google Sites.
- Puoi copiare un sito da un altro dominio, a condizione che tu sia indicato come proprietario nel sito di origine.
Aggiornamento dei metadati di un sito
Per aggiornare il titolo o il riepilogo di un sito, invia un messaggio HTTP PUT
al link edit
di una voce del sito.
Ad esempio, l'esempio seguente aggiorna il titolo del sito precedente in New Test Site2
e le relative
descrizione 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/"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>
Aggiunta di categorie
Nota: questa funzionalità è disponibile solo per i domini G Suite.
I siti di G Suite per il tuo dominio includono metadati delle categorie utili per classificare i siti all'interno del tuo dominio. Per aggiungere o aggiornare i metadati della categoria, invia un PUT
HTTP al link edit
della voce del tuo sito che include un tag category
. Vedi la riga in grassetto nell'esempio seguente:
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>
Questo esempio modifica un sito esistente e aggiunge la categoria "Sito del team".
Puoi anche aggiungere più categorie aggiungendo altri tag <category>
. Osserva le righe in grassetto nell'esempio seguente:
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>
In questo esempio vengono aggiunte due categorie: "Sito del team" e "Ufficio legale"
Mappature degli indirizzi web
Le mappature degli indirizzi web consentono agli utenti di Sites di mappare i propri domini a un sito Google. Ad esempio, http://www.mydomainsite.com
può essere utilizzato al posto di http://sites.google.com/a/domain.com/mysite
. A seconda di dove è ospitato il tuo sito, puoi modificare manualmente un
mappature degli indirizzi web del sito. Per saperne di più, consulta l'articolo del Centro assistenza.
Recupero delle mappature degli indirizzi web di un sito
Per restituire le mappature degli indirizzi web per un sito, recupera la voce o il feed del sito con il parametro 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>
Le mappature esistenti verranno visualizzate come link
con rel='webAddressMapping'. Nell'esempio riportato sopra,
ci sono tre webAddressMapping
che puntano al sito
http://sites.google.com/site/myOtherTestSite
.
Modifica delle mappature degli indirizzi web
Nota: tutte le operazioni GET/POST/PUT devono specificare il parametro with-mappings=true
quando si lavora
con le mappature degli indirizzi web. Se il parametro non è presente, webAddressMapping
non verranno restituiti nelle voci del sito (GET) né considerati
durante l'aggiornamento/la rimozione delle mappature (PUT) da una voce.
Per aggiungere, aggiornare o eliminare una mappatura, è sufficiente specificare, modificare o rimuovere questo link durante la creazione di nuovi siti oppure
l'aggiornamento dei metadati di un sito. Il parametro with-mappings=true
deve essere incluso nell'URI del feed del sito.
Nota: per aggiornare le mappature degli indirizzi, devi essere un amministratore del sito o un amministratore di dominio nel caso di un sito ospitato da G Suite.
Ad esempio, la richiesta seguente aggiorna la mappatura http://www.mysitemapping.com
a http://www.my-new-sitemapping.com
,
e rimuove http://www.mysitemapping2.com
lasciando il link fuori dalla voce:
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>
Nota: le mappature degli indirizzi web possono essere specificate anche in fase di creazione/copia di un sito.
Feed attività
Puoi recuperare l'attività recente (modifiche) di un sito recuperando il feed attività. Ogni voce nel il feed attività contiene informazioni su una modifica apportata al Sito.
Per eseguire una query sul feed attività, invia un messaggio GET
HTTP all'URL del feed attività:
https://sites.google.com/feeds/activity/domainName/siteName
Parametro feed | Descrizione |
---|---|
domainName | "site " o il dominio del tuo dominio ospitato da G Suite (ad es. example.com ). |
siteName | Il nome dello spazio web del tuo sito; presente nell'URL del Sito (ad es. myCoolSite ). |
Esempio di richiesta e risposta:
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>
Nota: per accedere a questo feed è necessario essere un collaboratore o un proprietario del sito.
Il cliente deve inviare l'intestazione Authorization
corretta e fare riferimento al token ottenuto
in Autorizzazione delle richieste.
Feed delle revisioni
Per recuperare la cronologia delle revisioni per qualsiasi voce di contenuto, invia un GET
HTTP al link di revisione della voce:
https://sites.google.com/feeds/revision/domainName/siteName/CONTENT_ENTRY_ID
Parametro feed | Descrizione |
---|---|
domainName | "site " o il dominio del tuo dominio ospitato da G Suite (ad es. example.com ). |
siteName | Il nome dello spazio web del tuo sito; presente nell'URL del Sito (ad es. myCoolSite ). |
Per trovare il link per le revisioni di una determinata pagina/commento/allegato/listitem, prima recupera la voce da
il feed di contenuti utilizzando CONTENT_ENTRY_ID. La voce recuperata conterrà un <atom:link>
per il feed delle revisioni.
Ad esempio:
<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"/>
Esempio di richiesta e risposta:
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>
Nota: per accedere a questo feed è necessario essere un collaboratore o un proprietario del sito.
Il client deve inviare l'intestazione Authorization
corretta e fare riferimento al token ottenuto
in Autorizzazione delle richieste.
Feed di contenuti
Recupero dei contenuti in corso...
Il feed di contenuti elenca i contenuti correnti di Sites. Invia una richiesta GET
autenticata al seguente URL:
https://sites.google.com/feeds/content/domainName/siteName
Parametro feed | Descrizione |
---|---|
domainName | "site " o il dominio del tuo dominio ospitato da G Suite (ad es. example.com ). |
siteName | Il nome dello spazio web del tuo sito; presente nell'URL del Sito (ad es. myCoolSite ). |
Il risultato è un feed che elenca la prima pagina di voci di contenuti sul sito. Ogni voce del feed rappresenterà un tipo diverso di contenuti,
ad esempio webpage
, filecabinet
, attachment
, comment
e così via.
L'elemento <category scheme="http://schemas.google.com/g/2005#kind">
determina il tipo di voce. Consulta la guida di riferimento
per un elenco di valori kind
supportati.
Nota: questo feed potrebbe richiedere o meno l'autenticazione. in base alle autorizzazioni di condivisione
del Sito.
Se il sito non è pubblico, il cliente deve inviare l'intestazione Authorization
corretta (come illustrato nell'esempio precedente)
e fai riferimento al token ottenuto in Autorizzazione delle richieste.
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>
Nota: questi sono solo i primi risultati. Per sfogliare l'intero feed di contenuti, segui del feed Link:
<link rel="next" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/?start-index=2"/>
Per una spiegazione degli elementi comuni a Atom, consulta la documentazione di riferimento del protocollo Google Data Protocol.
Di seguito sono descritti gli elementi che contengono un significato specifico per l'API della versione classica di Sites. Alcune voci di tipo avranno proprietà aggiuntive (non elencate di seguito), mentre
altri no. Ad esempio, una voce listitem
potrebbe avere elementi <gs:field>
, mentre una voce webpage
no.
Elemento | Descrizione |
---|---|
<content ...> | Il testo interno è il corpo HTML della pagina. Per alcune voci (ad es. allegati), questo elemento conterrà un attributo src che rimanda al file. |
<link rel="alternate" ...> | Link alla pagina o all'elemento in Google Sites. |
<link rel="http://schemas.google.com/sites/2008#revision" ...> | L'attributo href rimanda al feed delle revisioni della voce. |
<link rel="http://schemas.google.com/sites/2008#parent" ...> | L'attributo href rimanda alla voce principale della voce. |
<link rel="http://schemas.google.com/sites/2008#template" ...> | L'attributo href rimanda alla pagina del modello della voce. |
<category scheme="http://schemas.google.com/g/2005#kind" ...> | label è il tipo di voce. |
<category term="http://schemas.google.com/g/2005#template" ...> | label=template che indica che la voce è un modello. |
<gd:feedLink> | L'attributo href rimanda agli elementi secondari dell'elemento principale della voce. |
<sites:pageName> | Nome dello spazio web della pagina; corrispondente al nome nell'URL della pagina. |
<sites:revision> | Numero di revisione corrente. |
Esempi di query sui feed di contenuti
Puoi cercare nel feed di contenuti utilizzando alcuni dei parametri di query standard dell'API di dati di Google. e quelle specifiche dell'API della versione classica di Sites. Per informazioni più dettagliate e un elenco completo dei parametri supportati, consulta Guida di riferimento.
Recupero di tipi di voce specifici
Per recuperare solo un determinato tipo di voce, utilizza il parametro kind
. Questo esempio restituisce solo webpage
voci:
GET /feeds/content/domainName/siteName?kind=webpage
Per restituire più di un tipo di voce, separa ogni kind
con una virgola. Questo esempio restituisce filecabinet
e
listpage
voci:
GET /feeds/content/domainName/siteName?kind=filecabinet,listpage
In alternativa, puoi utilizzare il formato standard per una query /-/category
sui dati di Google anziché il parametro kind
:
GET /feeds/content/domainName/siteName/-/filecabinet|listpage
Recupero dei modelli di pagina in corso
Questo esempio restituisce solo template
pagine:
GET /feeds/content/domainName/siteName/-/template
Per restituire tutti i tipi di voce e includere template
pagine, usa:
GET /feeds/content/domainName/siteName/-/template|-template
Recupero di una pagina in base al percorso
Se conosci il percorso relativo di una pagina all'interno del sito Google, puoi utilizzare il parametro path
per recuperare quella pagina specifica.
Questo esempio restituirebbe la pagina che si trova in
http://sites.google.com/site/siteName/path/to/the/page
:
GET /feeds/content/domainName/siteName?path=/path/to/the/page
Recupero di tutte le voci sotto una pagina principale
Se conosci l'ID voce di una pagina, puoi utilizzare il parametro parent
per recuperare tutte le voci secondarie corrispondenti (se presenti):
GET /feeds/content/domainName/siteName?parent=CONTENT_ENTRY_ID
Sono incluse bozze o voci eliminate
Per includere le voci in stato di bozza o eliminate, utilizza rispettivamente i parametri include-drafts
o include-deleted
.
Questo esempio include voci bozza nel feed di contenuti:
GET /feeds/content/domainName/siteName?include-drafts=true
Ricerca a testo intero
Per eseguire una ricerca nell'intero contenuto di un sito, utilizza il parametro q
per eseguire una ricerca a testo intero:
GET /feeds/content/domainName/siteName?q=Text%20I%20am%20looking%20for
Creazione di contenuti
È possibile creare nuovi contenuti (pagine web, pagine elenco, pagine armadietto, pagine di annunci e così via) inviando un'istruzione HTTP POST
al feed di contenuti:
https://sites.google.com/feeds/content/domainName/siteName
Per un elenco dei tipi di voce supportati, consulta il parametro kind
nella Guida di riferimento.
Creazione di nuovi elementi / pagine
In questo esempio viene creato un nuovo webpage
sotto il livello più alto del sito e include un po' di codice HTML per il corpo della pagina.
e imposta il titolo su "Nuovo titolo pagina 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>
In caso di esito positivo, il server risponde con un 201 Created
e una copia della voce.
Creazione di elementi/pagine nei percorsi degli URL personalizzati
Per impostazione predefinita, l'esempio precedente viene creato nell'URL
http://sites.google.com/domainName/siteName/new-webpage-title
e
avere un'intestazione di pagina "Nuovo titolo della pagina web". In altre parole, il valore <atom:title>
è normalizzato in new-webpage-title
per l'URL.
Per personalizzare il percorso dell'URL di una pagina, puoi impostare l'elemento <sites:pageName>
.
In questo esempio viene creato un nuovo filecabinet
con l'intestazione "Archiviazione file", ma la pagina viene creata
nell'URL http://sites.google.com/domainName/siteName/files
da
che specifica l'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>
Il server utilizza le seguenti regole di precedenza per assegnare un nome al percorso dell'URL di una pagina:
<sites:pageName>
, se presente. Deve soddisfarea-z, A-Z, 0-9, -, _
.<atom:title>
non deve essere null se pageName non è presente. La normalizzazione consiste nel tagliare e comprimere lo spazio vuoto in "-" e rimuovi i caratteri non corrispondenti aa-z, A-Z, 0-9, -, _
.
Ad esempio, "Custom_Page2" verrebbe accettata dal server.
Creazione di pagine secondarie
Per creare pagine secondarie (secondarie) sotto una pagina principale, includi un <link rel="http://schemas.google.com/sites/2008#parent">
nel
Atom. Imposta l'attributo href
del link sul link personale della voce principale.
In questo esempio viene creato un nuovo announcement
con l'intestazione "annuncio" sotto una pagina di annuncio principale con una voce
ID PARENT_ENTRY_ID
. Sono inclusi anche i contenuti HTML per il corpo della pagina:
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>
Modelli di pagina
Creazione di modelli di pagina
La procedura per creare un modello di pagina è la stessa della creazione di nuovi elementi/pagine e
creazione di pagine secondarie.La differenza è l'aggiunta di category
con termine ed etichetta impostati su "http://schemas.google.com/g/2005#template"
e "template", rispettivamente.
Questo esempio crea un nuovo modello 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>
Creazione di pagine da un modello
Come per la creazione di modelli di pagina, puoi creare un'istanza per una nuova pagina da un modello includendo un elemento <link>
con rel='http://schemas.google.com/sites/2008#template' puntare
al link stesso di un modello di pagina.
Questo esempio crea una nuova pagina filecabinet
da un modello di pagina esistente che definisce un armadietto.
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: nonostante un modello che definisca un <category>
, incluso uno nel
è comunque obbligatoria. Inoltre, se includi un elemento <content>
, il server lo rifiuterà.
Caricamento di file
Proprio come in Google Sites, l'API consente di caricare allegati nelle pagine schedario e nelle pagine principali.
Per caricare un allegato a un genitore, invia una richiesta POST
HTTP all'URL del feed di contenuti:
https://sites.google.com/feeds/content/domainName/siteName
Il corpo POST
deve essere una richiesta multiparte MIME per combinare i contenuti del file con
un <atom:entry>
contenente i metadati dell'allegato. L'<atom:entry>
deve fare riferimento
link alla voce principale per specificare dove verrà creato l'allegato.
Per ulteriori informazioni, consulta la sezione Creazione di pagine secondarie.
Caricamento di allegati
Ecco un esempio di caricamento di un file PDF in uno schedario con ID PARENT_ENTRY_ID
. L'allegato verrà creato
con il titolo "File PDF" e una descrizione (facoltativa) "Pacchetto 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--
Se il caricamento viene eseguito correttamente, il server risponderà con 201 Created
e una copia della voce dell'allegato appena creato.
Caricamento di un allegato in una cartella
Per caricare un allegato in una cartella esistente in un filecabinet
, includi una categoria con la parola "term" attributo impostato sul nome della cartella:
<category scheme="http://schemas.google.com/sites/2008#folder" term="FolderName">
Allegati web
Gli allegati web sono tipi speciali di allegati. Essenzialmente, si tratta di link ad altri file sul web che puoi aggiungere ai tuoi elenchi dei file armadietto. Questa funzione è analoga ad "Aggiungi file tramite URL" di caricamento nella UI di Google Sites.
Nota: gli allegati web possono essere creati solo in uno schedario. Non possono essere caricati su altri tipi di pagine.
Questo esempio crea un elemento webattachment
sotto l'armadietto a cui fa riferimento l'ID FILECABINET_ENTRY_ID
.
Il titolo e la descrizione (facoltativa) sono impostati su "GoogleLogo". e "colori piacevoli", rispettivamente.
POST /feeds/content/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> Content-Type: application/atom+xml Content-Length: 531 <entry xmlns="http://www.w3.org/2005/Atom"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#webattachment" label="webattachment"/> <link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="https://sites.google.com/feeds/content/domainName/siteName/FILECABINET_ENTRY_ID"/> <title>GoogleLogo</title> <summary>nice colors</summary> <content type="image/gif" src="http://www.google.com/images/logo.gif"></content> </entry>
POST
crea un link nell'armadietto dell'utente che rimanda all'immagine all'indirizzo "http://www.google.com/images/logo.gif".
Aggiornamento dei contenuti
I metadati (titolo, nome della pagina e così via) e i contenuti di qualsiasi pagina possono essere modificati con una singola richiesta PUT
al link edit
.
Il corpo della richiesta deve contenere una voce Atom che descrive la pagina aggiornata. L'eccezione a questa regola è la voce relativa agli allegati, in cui la voce può essere utilizzata solo per aggiornare i metadati dell'allegato.
Per modificare i contenuti del file allegato, includi semplicemente i dati non elaborati come corpo di una richiesta PUT
alla
link edit-media
dell'allegato. Puoi anche aggiornare i metadati e i contenuti dei file allegati contemporaneamente utilizzando un
Richiesta multiparte MIME.
Se vuoi che il tuo aggiornamento non sovrascriva le modifiche di un altro client, includi il valore ETag della voce originale. A tale scopo, procedi nel seguente modo:
fornendo il valore ETag in un'intestazione HTTP If-Match
o includendo l'attributo gd:etag
della voce originale nella
voce aggiornata. Per determinare il valore ETag della voce originale, esamina l'attributo gd:etag
dell'elemento <entry>
.
Per le voci relative ai contenuti multimediali, l'ETag del file multimediale potrebbe essere disponibile nell'attributo gd:etag
del link edit-media
.
Se vuoi aggiornare la voce a prescindere dal fatto che qualcun altro l'abbia aggiornata dal momento in cui l'hai recuperata, utilizza
If-Match: *
e non includere l'ETag. Per ulteriori informazioni sugli ETag, consulta
Guida di riferimento delle API di dati di Google.
Aggiornamento dei metadati o dei contenuti HTML di un elemento
Per aggiornare i metadati o i contenuti HTML di una voce, invia un PUT
HTTP al link edit
della voce.
Di seguito è riportato un esempio di aggiornamento di una voce listpage
(rappresentata dal relativo ID ENTRY_ID
) con le seguenti modifiche:
- Il titolo viene modificato in "Contenuti aggiornati"
- Contenuti HTML aggiornati
- La prima intestazione di colonna dell'elenco viene aggiornata in "Proprietario"
- Il percorso dell'URL della pagina è stato modificato dall'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>
Nota: la voce (restituita dal server) conterrà più elementi rispetto all'esempio precedente.
Sostituire i contenuti di un allegato
Di seguito è riportato un esempio di sostituzione dei contenuti di un allegato, ma senza modificare i metadati. Poiché la richiesta include nuovi contenuti,
viene utilizzato il link edit-media
della voce dell'allegato.
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 ...
Aggiornamento dei metadati e dei contenuti degli allegati
Di seguito è riportato un esempio di come aggiornare contemporaneamente sia i metadati di un allegato sia i relativi contenuti. Il nome degli allegati verrà aggiornato
su "Nuovo titolo" e i relativi contenuti verranno sostituiti da quelli di un file ZIP. Poiché la richiesta include contenuti nuovi,
è utilizzato il link edit-media
della voce dell'allegato.
Tieni presente che includere l'ETag per i metadati fornisce un valore If-Match
implicito anche per i contenuti multimediali, poiché qualsiasi aggiornamento
i contenuti multimediali causano la modifica dell'ETag dei metadati.
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
Eliminazione di contenuti
Per rimuovere un elemento da un sito Google, devi prima recuperare la voce, quindi inviare un DELETE
richiesta all'URL edit
della voce. Si tratta dello stesso URL utilizzato durante l'aggiornamento dei metadati o dei contenuti HTML di 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>
Se la voce è stata eliminata, il server risponde con un 200 OK
HTTP.
Per assicurarti di non eliminare una voce che è stata modificata da un altro cliente dopo averla recuperata, includi un
Intestazione If-Match
HTTP che contiene il valore ETag della voce originale. Puoi determinare il valore ETag della voce originale in base a
esaminare l'attributo gd:etag
dell'elemento <entry>
.
Se vuoi eliminare la voce indipendentemente dal fatto che qualcun altro l'abbia aggiornata dopo averla recuperata, utilizza
If-Match: *
e non includere l'ETag. In questo caso, non è necessario recuperare la voce prima di eliminarla.
Per ulteriori informazioni sugli ETag, consulta la guida di riferimento delle API di dati di Google.
Download degli allegati
Una volta trovata la voce dell'allegato, puoi scaricare il file inviando un GET
HTTP autenticato al codice
<content>
src. Un esempio di link a contenuti di un PDF:
<content type="application/pdf" src="http://502377765-a-google-com-s-sites.googlegroups.com/feeds/media/content/domainName/siteName/678942036"/>
Feed ACL
Panoramica delle autorizzazioni di condivisione (ACL)
Ogni voce ACL nel feed ACL rappresenta un ruolo di accesso di una particolare entità: un utente, un gruppo di utenti, un dominio o l'accesso predefinito (che è un sito pubblico). Le voci verranno mostrate solo per le entità con accesso esplicito. Ne verrà mostrata una sola per ogni indirizzo email nella sezione "Persone con accesso" nella schermata di condivisione della UI di Google Sites. Pertanto, gli amministratori di dominio non vengono mostrati, anche se hanno accesso implicito a un sito.
Ruoli
L'elemento Role rappresenta un livello di accesso che un'entità può avere. Esistono quattro possibili valori per l'elemento gAcl:role
:
- reader: un visualizzatore (equivalente all'accesso di sola lettura).
- writer: un collaboratore (equivalente all'accesso in lettura/scrittura).
- owner: in genere l'amministratore del sito (equivalente all'accesso in lettura/scrittura).
Ambiti
L'elemento ambito rappresenta l'entità con questo livello di accesso. Esistono cinque tipi di elementi gAcl:scope
:
- utente: un valore dell'indirizzo email, ad esempio "utente@gmail.com".
- gruppo: l'indirizzo email di un gruppo Google, ad esempio "gruppo@dominio.com".
- domain: un nome di dominio G Suite, ad esempio "dominio.com".
- invito: un utente che è stato invitato sul sito, ma che non è ancora stato aggiunto all'ACL del sito. Non disponibile se è specificato gdata 1.3 o versioni precedenti.
- default: esiste un solo ambito possibile di tipo "default", che non ha alcun valore.
(ad es.
<gAcl:scope type="default">
). Questo particolare ambito controlla l'accesso di cui dispone per impostazione predefinita qualsiasi utente su un sito pubblico.
Nota: i domini non possono avere un valore gAcl:role
imposta su "proprietario" all'accesso, possono essere solo lettori o autori.
Informazioni sull'invito l'ambito di attività.
L'API restituisce l'ambito dell'invito quando aggiungi all'ACL uno o più utenti che non dispongono già di un Account Google. L'API restituisce un URL con un token incorporato che devi fornire agli utenti invitati per consentire loro di accettare l'invito.
Questo metodo di invito consente di invitare utenti non Google senza che prima sia a conoscenza dell'indirizzo email che desiderano utilizzare. Se gli utenti fanno clic sull'URL di invito con il token incorporato, possono registrarsi per accedere utilizzando qualsiasi indirizzo email. Inoltre, questo URL potrebbe essere utilizzato da più utenti per accettare l'invito, quindi può essere utile se si invita un utente o un gruppo di utenti.
Nota: l'"invito" l'ambito è disponibile solo nella versione 1.4 e successive di gdata. Non funzionerà se specifichi esplicitamente 1.3 o un numero inferiore.
Recupero del feed ACL
Il feed ACL può essere utilizzato per controllare le autorizzazioni di condivisione di un sito ed è accessibile tramite il seguente URI:
https://sites.google.com/feeds/acl/site/domainName/siteName
Parametro feed | Descrizione |
---|---|
domainName | "site " o il dominio del tuo dominio ospitato da G Suite (ad es. example.com ). |
siteName | Il nome dello spazio web del tuo sito; presente nell'URL del Sito (ad es. myCoolSite ). |
Tieni presente che ogni voce nel feed del sito contiene un link a questo feed:
<link rel="http://schemas.google.com/acl/2007#accessControlList" type="application/atom+xml" href="https://sites.google.com/feeds/acl/site/domainName/siteName"/>
Per recuperare le autorizzazioni di condivisione di un sito, invia un messaggio HTTP GET
all'URI del feed ACL:
GET /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here>
Il server risponderà con 200 OK
e un feed di voci 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>
Condividere un sito
Il feed ACL accetta richieste GET
, POST
e PUT
. Per inserire un nuovo ruolo nel feed ACL, invia semplicemente una richiesta POST
al feed ACL del sito.
Nota: alcuni ACL di condivisione potrebbero essere possibili solo se il dominio è configurato consentire queste autorizzazioni (ad esempio se è abilitata la condivisione all'esterno del dominio per i domini G Suite e così via).
In questo esempio viene aggiunto un nuovo collaboratore (autore) al sito:
POST /feeds/acl/site/domainName/siteName HTTP/1.1 Host: sites.google.com GData-Version: 1.4 Authorization: <your authorization header here> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gAcl='http://schemas.google.com/acl/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/acl/2007#accessRule'/> <gAcl:role value='writer'/> <gAcl:scope type='user' value='new_writer@example.com'/> </entry>
Un 201 Created
e la nuova voce vengono restituiti per un inserimento riuscito:
<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>
Invitare utenti tramite "invito" ambito
Se aggiungi utenti che non dispongono di Account Google, l'API restituisce un URL che devi fornire agli utenti che vuoi invitare. Dopo aver fatto clic sull'URL, l'utente potrà accedere al sito eseguendo l'accesso con un account esistente o creandone uno nuovo.
Un invito riuscito restituisce un 201 Created
e una nuova voce che include l'URL che devi trasmettere all'utente:
<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>
Condivisione a livello di gruppo e di dominio
Analogamente alla condivisione di un sito con un singolo utente, puoi condividere un sito con un
Gruppo Google o dominio G Suite. I valori di scope
necessari sono elencati di seguito.
Condivisione con l'indirizzo email di un gruppo:
<gAcl:scope type="group" value="group@example.com"/>
Condivisione con un intero dominio:
<gAcl:scope type="domain" value="example.com"/>
La condivisione a livello di dominio è supportata solo per i domini G Suite e solo per il dominio su cui è ospitato il sito. Ad esempio, http://sites.google.com/a/dominio1.com/sitoA può solo condividere l'intero sito con dominio1.com, non dominio2.com. I siti che non sono ospitati su un dominio G Suite (ad es. http://sites.google.com/site/siteB) non possono invitare domini.
Modifica delle autorizzazioni di condivisione
Per aggiornare una voce ACL, modificala in base alle esigenze ed invia una richiesta PUT
HTTP al
edit
della voce, che è semplicemente
un elemento <link>
, il cui "rel" sia impostato su "edit". Nell'esempio precedente, il link è:
<link rel='edit' type='application/atom+xml' href='https://sites.google.com/feeds/acl/site/domainName/siteName/user%3Anew_writer%40example.com'/>
Lo snippet seguente modifica il ruolo di new_writer@gmail.com
in "lettore":
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>
Rimozione delle autorizzazioni di condivisione
Per rimuovere le autorizzazioni per questo utente, invia una richiesta DELETE
allo stesso link edit
utilizzato per la richiesta 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>
Il server risponderà con 200 OK
.
Argomenti speciali
Recupero di un feed o di una voce
Se vuoi recuperare un feed o una voce già recuperati, puoi migliorare l'efficienza comunicando il server di inviare l'elenco o la voce solo se è stata modificata dall'ultima volta che l'hai recuperata.
Per eseguire questo tipo di recupero condizionale, invia una richiesta GET
HTTP che includa un
Intestazione If-None-Match
. Nell'intestazione, specifica l'ETag dell'elenco o della voce, che puoi trovare in
attributo gd:etag
dell'elemento <feed>
o dell'elemento <entry>
.
Esempio di utilizzo del feed del sito:
GET /feeds/site/domainName/myOtherTestSite/ GData-Version: 1.4 If-None-Match: W/"Ck8GQXk7fil7ImA9WxNSFk0."
Quando il server riceve questa richiesta, verifica se l'elemento richiesto ha lo stesso ETag
l'ETag specificato. Se gli ETag corrispondono, l'elemento non è cambiato e il server restituisce un
Codice di stato HTTP 304 Not Modified
o codice di stato HTTP 412 Precodition Failed
. Entrambe
i codici di stato indicano che l'elemento già recuperato è aggiornato.
Se gli ETag non corrispondono, l'elemento è stato modificato dopo l'ultima richiesta e il server lo restituisce.
Per ulteriori informazioni sugli ETag, consulta la guida di riferimento delle API di dati di Google.
Elaborazione batch
Le richieste in batch offrono al tuo client la possibilità di eseguire più operazioni in un'unica richiesta, invece di inviare ogni operazione singolarmente.
Il server eseguirà il maggior numero possibile delle modifiche richieste e restituirà informazioni sullo stato che puoi utilizzare per valutare l'esito positivo o negativo di ogni operazione. Per ulteriori dettagli sull'elaborazione batch nell'API di dati di Google, consulta Elaborazione in batch con le API di dati di Google.
Ogni operazione in un feed collettivo ha un elemento <id>, ad eccezione delle operazioni di inserimento.
Questo elemento è uguale all'URL di richiesta che useresti normalmente per aggiornare, eliminare o eseguire query sul feed di contenuti.
Ad esempio, se stai aggiornando una modifica, imposta <id> sul link edit
per la voce in questione.
Viene utilizzato per identificare la voce di destinazione. Le nuove voci non hanno elementi <id> poiché
non sono stati ancora creati. Puoi invece definire un valore di stringa in <batch:id>, che verrà
restituito nella risposta del server e utilizzato per cercare la voce corrispondente.
Per effettuare una richiesta batch, crea un feed batch e invia un POST
HTTP al link batch 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"/>
L'esempio seguente mostra come eseguire query, inserire, aggiornare ed eliminare una voce di pagina 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>
Il feed restituito conterrà una voce di risultato per ogni operazione:
<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>