Avviso: questa pagina riguarda le API di Google più vecchie, le API di dati di Google; è pertinente solo per le API elencate nella directory delle API di dati di Google, molte delle quali sono state sostituite con API più recenti. Per informazioni su una nuova API specifica, consulta la documentazione della nuova API. Per informazioni sulle autorizzazioni per le richieste con un'API più recente, vedi Autenticazione e autorizzazione degli Account Google.
Ryan Boyd, team delle API di dati di Googlesettembre 2007
- Introduzione
- Ottenere e installare cURL
- Autenticarsi a un servizio dati di Google
- Recupero di feed e voci
- Aggiornare le voci
- Creazione di voci
- Eliminare le voci
- Caricamento di oggetti multimediali
- Altri strumenti a riga di comando
- Conclusione
Introduzione
In sostanza, le API di dati di Google utilizzano i feed e le voci Atom (XML) come formato dei dati e HTTP come protocollo per la trasmissione dei dati, estendendo il Protocollo di pubblicazione Atom. Pubblichiamo diverse librerie client per semplificare le interazioni con le API dei dati di Google. Tuttavia, puoi sempre usare strumenti di livello inferiore per lavorare con i nostri servizi ed è piuttosto semplice ricevere qualche piccolo consiglio.
cURL è un'applicazione a riga di comando per eseguire richieste che utilizzano diversi protocolli, tra cui HTTP. cURL viene spesso usato dagli sviluppatori per testare i servizi di dati di Google, in quanto supporta la funzionalità HTTP necessaria per interagire con le API a basso livello.
cURL fornisce solo il supporto per l'esecuzione delle comunicazioni HTTP, pertanto la conoscenza del protocollo per i dati Google, del protocollo specifico per i servizi e del formato dati XML utilizzato è un prerequisito per il lavoro con l'applicazione. Per semplificare queste attività, sono menzionati anche altri strumenti in questo articolo.
Questo articolo utilizza esempi basati sull'API di dati di Picasa Web Album. Tuttavia, tutti questi esempi possono essere applicati facilmente ad altre API di dati di Google.
Ottenere e installare cURL
cURL è disponibile comunemente in un'installazione predefinita di molte piattaforme UNIX/Linux. Prova a digitare curl
nella shell preferita per verificare se lo strumento è installato e si trova nel tuo PATH
. Se non hai installato lo strumento, visita la pagina di download sul sito web cURL per ricevere la fonte ufficiale o un pacchetto binario fornito dall'utente. Tieni presente che lo strumento a riga di comando utilizza la libreria libcurl
, che può essere offerta come pacchetto separato per il download. Pertanto, se non stai eseguendo la compilazione dall'origine, assicurati di scaricare un pacchetto "binary" anziché un pacchetto "libcurl". I pacchetti abilitati per SSL sono obbligatori se vuoi utilizzare cURL per acquisire i token di autenticazione o accedere ad alcuni servizi per i dati di Google che richiedono l'utilizzo di SSL per le richieste.
Autenticazione a un servizio dati di Google
Le richieste di dati di Google autenticate vengono aggiunte aggiungendo alla richiesta un'intestazione HTTP contenente un token di autenticazione di ClientLogin (app desktop/per dispositivi mobili) o AuthSub (app web). A scopo di test tramite cURL, ClientLogin è il metodo più semplice ed è riportato di seguito. Le intestazioni di autenticazione AuthSub potrebbero essere utilizzate con cURL, ma il processo più avanzato per ottenere i token non rientra nell'ambito di questo articolo.
Utilizzo di ClientLogin
ClientLogin è destinato alle applicazioni installate (desktop/dispositivi mobili). Con questo metodo di autenticazione, l'applicazione che utilizza le API di dati di Google gestisce direttamente il nome utente e la password dell'utente.
Una richiesta di autenticazione per ClientLogin accetta un nome utente, una password e un nome di servizio come variabili post modulo. Queste variabili vengono trasmesse rispettivamente come argomenti Email
, Passwd
e service
. Questa richiesta restituisce una risposta con diversi token, uno dei quali può essere utilizzato per inviare richieste al servizio dati Google. Tieni presente che gli argomenti di dati trasmessi con curl
devono essere codificati in URL se contengono caratteri non ASCII, che spesso compaiono negli argomenti Email
e Passwd
. Puoi chiedere a curl
di codificare questi argomenti tramite l'URL utilizzando il flag --data-urlencode
.
Esempio di richiesta:
curl https://www.google.com/accounts/ClientLogin \ --data-urlencode Email=brad.gushue@example.com --data-urlencode Passwd=new+foundland \ -d accountType=GOOGLE \ -d source=Google-cURL-Example \ -d service=lh2
Esempio di risposta:
SID=DQAAAHYBADCv2pSv7nflacDNwz3zEDUGtrSvNVDcpkSfddi77b3U5sEaHmP8YLWhmA36F9rk85mL8J5dqo4apn0T1vKz0fPGI9Xtnuet6cuE2ZzYvrNIwbSC_HjTqF4zudNQnnlDuD2wqZT-g1qXI8KhGAQZV4NexHZoQPlabTsGuRZeIBxj1A LSID=EUBBBIaBADCl-kNxvRVmcQghpt3cqSMfEooKR9flLOUZqwgP9OrZS83gse-KSdTNeXhxsET7FYenDhceP9lIPOmesH-t9qh-AWUHjjMdZEbUNeF9mWyzln6Z-FajaiG-cVFkqW0ZJ8ZbnCP30xXj6xFK6QxaAcqy_9Pej8jhEnxS9E61ftQGPg Auth=EUBBIacAAADK-kNxvRVmcQghpt3cqSMfEooLNMflLNIQqwgP9OrZS83gs-KSdTNeXhxsET7FYePWmaD8Vsy1V4LSUGMUP48Je2TO8OcjBj6HgAtPhiZeX-gKDfagZDK44j4n-Tkb44nhOnp2_QPSnBj3Z2vYwOEDjjG3Q53aQVC2132JKOuGh
Consulta la documentazione di ClientLogin per informazioni specifiche sui parametri utilizzati nella richiesta sopra. In questo esempio, il servizio utilizzato è l'API di dati di Picasa Web Album. Il nome del servizio (service
) è lh2
. I nomi dei servizi per altri servizi dati di Google sono disponibili nella pagina delle domande frequenti sulle API di dati di Google.
Il valore del token Auth
nella risposta precedente è l'unico valore necessario per l'autenticazione nei servizi dati di Google. Il valore di questo token è formato in un'intestazione HTTP, che viene quindi utilizzata per ogni richiesta a un servizio dati di Google.
curl --silent --header "Authorization: GoogleLogin auth=EUBBIacAAADK\ -kNxvRVmcQghpt3cqSMfEooLNMflLNIQqwgP9OrZS83gs-KSdTNeXhxs\ ET7FYePWmaD8Vsy1V4LSUGMUP48Je2TO8OcjBj6HgAtPhiZeX-gKDfag\ ZDK44j4n-Tkb44nhOnp2_QPSnBj3Z2vYwOEDjjG3Q53aQVC2132JKOuGh" \ "http://picasaweb.google.com/data/feed/api/user/default"
Nota: il metodo di escape dei caratteri di nuova riga con barra rovesciata ("\"") sopra non funziona nella shell dei comandi di Windows, quindi devi eseguire l'intero comando su una riga se esegui curl
su Windows.
Recupero di feed e voci
Nelle API di dati di Google, il recupero dei feed e delle voci viene eseguito eseguendo un GET
HTTP su un URL, con un insieme facoltativo di parametri di ricerca. Poiché stiamo eseguendo una richiesta GET
, devono essere trasmessi a curl
solo l'intestazione di autenticazione e l'URL. L'esempio seguente continuerà a utilizzare l'API di dati di Picasa Web Album e viene utilizzato per recuperare un elenco degli album di proprietà dell'utente autenticato. Tieni presente che in questo esempio abbiamo abbreviato il token di autenticazione in ABCDEFG
, ma è necessario utilizzare il token completo (ad es. EUBBIacA
...32JKOuGh
indicato sopra).
curl --silent --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/feed/api/user/default"
Verrà restituito un blob non XML di XML:
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:geo='http://www.w3.org/2003/01/geo/wgs84_pos#' xmlns:gml='http://www.opengis.net/gml' xmlns:georss='http://www.georss.org/georss' xmlns:photo='http://www.pheed.com/pheed/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gphoto='http://schemas.google.com/photos/2007'><id>http://picasaweb.google.com/data/feed/base/user/brad.gushue</id><updated>2007-09-13T21:30:21.454Z</updated>...</entry></feed>
Esistono alcuni strumenti accettabili per formattare l'output al fine di renderlo più facilmente leggibile, incluso l'ordine. Il modo più semplice per utilizzare questa funzionalità consiste nel trasmettere l'output dal comando curl al seguente ordine:
curl --silent --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/feed/api/user/default" | tidy -xml -indent -quiet
Il risultato è un feed molto più leggibile, come il seguente:
<?xml version='1.0' encoding='utf-8'?> <feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:geo='http://www.w3.org/2003/01/geo/wgs84_pos#' xmlns:gml='http://www.opengis.net/gml' xmlns:georss='http://www.georss.org/georss' xmlns:photo='http://www.pheed.com/pheed/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gphoto='http://schemas.google.com/photos/2007'> <id>http://picasaweb.google.com/data/feed/api/user/brad.gushue</id> <updated>2007-09-13T21:47:07.337Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#user' /> <title type='text'>brad.gushue</title> <subtitle type='text'></subtitle> <icon> http://lh6.google.com/brad.gushue/AAAAj9zigp4/AAAAAAAAAAA/RiMAlXV4MFI/s64-c/brad.gushue</icon> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://picasaweb.google.com/data/feed/api/user/brad.gushue' /> <link rel='alternate' type='text/html' href='http://picasaweb.google.com/brad.gushue' /> <link rel='self' type='application/atom+xml' href='http://picasaweb.google.com/data/feed/api/user/brad.gushue?start-index=1&max-results=1000' /> <author> <name>Brad</name> <uri>http://picasaweb.google.com/brad.gushue</uri> </author> <generator version='1.00' uri='http://picasaweb.google.com/'> Picasaweb</generator> <openSearch:totalResults>8</openSearch:totalResults> <openSearch:startIndex>1</openSearch:startIndex> <openSearch:itemsPerPage>1000</openSearch:itemsPerPage> <gphoto:user>brad.gushue</gphoto:user> <gphoto:nickname>Brad</gphoto:nickname> <gphoto:thumbnail> http://lh6.google.com/brad.gushue/AAAAj9zigp4/AAAAAAAAAAA/RiMAlXV4MFI/s64-c/brad.gushue</gphoto:thumbnail> <entry> <id> http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593</id> <published>2007-05-23T04:55:52.000Z</published> <updated>2007-05-23T04:55:52.000Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#album' /> <title type='text'>Trip To Italy</title> <summary type='text'>This was the recent trip I took to Italy.</summary> <rights type='text'>public</rights> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://picasaweb.google.com/data/feed/api/user/brad.gushue/albumid/9810315389720904593' /> <link rel='alternate' type='text/html' href='http://picasaweb.google.com/brad.gushue/TripToItalyV2' /> <link rel='self' type='application/atom+xml' href='http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593' /> <link rel='edit' type='application/atom+xml' href='http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593/123456' /> <author> <name>Brad</name> <uri>http://picasaweb.google.com/brad.gushue</uri> </author> <gphoto:id>9810315389720904593</gphoto:id> <media:group> ... </media:group> </entry> <entry> ... </entry> </feed>
Le singole voci possono essere recuperate allo stesso modo fornendo l'URL della voce, anziché l'URL di un feed.
Aggiornamento delle voci
Le voci nelle API di dati di Google vengono aggiornate eseguendo il comando HTTP PUT
all'URL di modifica con una nuova copia del codice XML della voce nel corpo della richiesta.
- Recupera la voce utilizzando il valore URL
atom:link/@rel='self'
- Aggiorna la voce localmente per apportare le modifiche necessarie
PUT
la voce per tornare al server, utilizzando il valore dell'URLatom:link/@rel='edit'
1. Recupero della voce
La voce può essere recuperata utilizzando uno dei due URL in grassetto nel blocco di feed sopra riportato. L'URL necessario è il valore href
per l'elemento link
con rel='self'
.
curl --silent --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593"
2. Aggiornamento della voce localmente
Una volta recuperata, la voce deve essere aggiornata utilizzando un editor di testo o un'applicazione locale per poter apportare le modifiche necessarie. Nel comando riportato sopra per recuperare una voce, non abbiamo inoltrato i risultati a tidy
come abbiamo fatto negli esempi precedenti. Il risultato è XML che rappresenta gli stessi dati, ma ha una formattazione diversa da quella della versione inoltrata in tidy
. Ai fini della modifica manuale di una voce, l'utilizzo di tidy
spesso semplifica l'utilizzo del codice XML.
Nota: ricorda di includere tutte le definizioni dello spazio dei nomi XML utilizzate come attributi nella atom:entry
quando pubblichi la nuova voce. Se le ometti, le eccezioni verranno analizzate. Inoltre, tidy
sostituirà gli spazi tra le definizioni dello spazio dei nomi con caratteri di nuova riga. Si tratta di un codice XML valido, ma al momento i Servizi dati Google non lo accettano. Se utilizzi tidy
, assicurati di aggiungere spazi tra questi attributi nell'elemento entry
.
3. Aggiornamento della voce sul server
Utilizzando l'URL edit
, devi PUT
una copia della voce che utilizza il servizio tramite cURL. Deve essere aggiunta un'intestazione per indicare il tipo di contenuti inviati al server. Lo snippet che segue presuppone che il file con la voce aggiornata venga salvato nel file updated_entry.xml.
curl --silent --data-binary "@updated_entry.xml" --request PUT --header "Content-Type: application/atom+xml" --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593/123456"
Creazione delle voci
Le voci nelle API di dati di Google vengono create effettuando un HTTP POST
all'URL del post con una nuova voce. Il valore atom:id
viene assegnato dal server e pertanto non è necessario includerlo nelle nuove voci. Il modo più semplice per creare una nuova voce consiste nel recuperare una voce precedente e modificarla. L'esempio riportato di seguito permette di farlo.
- Recupera la voce di un modello utilizzando
atom:link/@rel='self'
- Modifica la voce del modello a livello locale per rimuovere le informazioni non necessarie e apportare le modifiche necessarie.
POST
la voce al server, utilizzando l'URLpost
del feed. Questa opzione si trova nel feed recuperato come valorehref
per l'elementolink
conrel='http://schemas.google.com/g/2005#post'
oppure nella documentazione del servizio su http://code.google.com.
1. Recuperare una voce del modello
È possibile recuperare una singola voce utilizzando il valore href
di un elemento link
con rel='self'
come se fosse stata recuperata prima di aggiornarla nell'esempio sopra.
curl --silent --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593" | tidy -xml -indent -quiet > template_entry.xml
La risposta, dopo l'utilizzo di tidy
, avrà il seguente aspetto:
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:exif='http://schemas.google.com/photos/exif/2007' xmlns:geo='http://www.w3.org/2003/01/geo/wgs84_pos#' xmlns:gml='http://www.opengis.net/gml' xmlns:georss='http://www.georss.org/georss' xmlns:photo='http://www.pheed.com/pheed/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gphoto='http://schemas.google.com/photos/2007'> <id> http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389741123981</id> <published>2007-05-23T04:55:52.000Z</published> <updated>2007-05-23T04:55:52.000Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#album' /> <title type='text'>Trip To Italy</title> <summary type='text'>This was the recent trip I took to Italy.</summary> <rights type='text'>public</rights> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://picasaweb.google.com/data/feed/api/user/brad.gushue/albumid/9810315389741123981' /> <link rel='alternate' type='text/html' href='http://picasaweb.google.com/brad.gushue/TripToItaly' /> <link rel='self' type='application/atom+xml' href='http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389741123981' /> <link rel='edit' type='application/atom+xml' href='http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389741123981/1179896152905401' /> <author> <name>Brad</name> <uri>http://picasaweb.google.com/brad.gushue</uri> </author> <gphoto:id>9810315389741123981</gphoto:id> <gphoto:name>TripToItaly</gphoto:name> <gphoto:location></gphoto:location> <gphoto:access>public</gphoto:access> <gphoto:timestamp>1179896152000</gphoto:timestamp> <gphoto:numphotos>0</gphoto:numphotos> <gphoto:numphotosremaining>500</gphoto:numphotosremaining> <gphoto:bytesUsed>0</gphoto:bytesUsed> <gphoto:user>brad.gushue</gphoto:user> <gphoto:nickname>Brad</gphoto:nickname> <gphoto:commentingEnabled>true</gphoto:commentingEnabled> <gphoto:commentCount>0</gphoto:commentCount> <media:group> <media:title type='plain'>Trip To Italy</media:title> <media:description type='plain'>This was the recent trip I took to Italy.</media:description> <media:keywords></media:keywords> <media:content url='http://lh5.google.com/brad.gushue/ADFUFKqeA5E/AAAAAAAAABc/V6Sga_Z03WU/TripToItaly.jpg' type='image/jpeg' medium='image' /> <media:thumbnail url='http://lh5.google.com/brad.gushue/ADFUFKqeA5E/AAAAAAAAABc/V6Sga_Z03WU/s160-c/TripToItaly.jpg' height='160' width='160' /> <media:credit>Brad</media:credit> </media:group> </entry>
2. Modifica la voce del modello
Vogliamo creare un album chiamato "Curling in Canada" con le foto della nostra recente partita di curling. I dati di Google consentono di eliminare gli elementi Atom per cui il server fornisce valori. Pertanto, per creare questa semplice voce di modello, rimuoveremo i valori atom:id
, atom:published
, atom:updated
, atom:author
e i vari elementi atom:link
nel feed. Questo ci permetterà di inserire una voce di modello essenziale. La voce deve quindi essere modificata per rappresentare il nuovo album che stiamo creando:
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gphoto='http://schemas.google.com/photos/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#album' /> <title type='text'>Curling in Canada</title> <summary type='text'>Pictures of all my curling matches in Canada.</summary> <gphoto:location>Canada</gphoto:location> <gphoto:access>public</gphoto:access> <gphoto:commentingEnabled>true</gphoto:commentingEnabled> </entry>
Nota: ricorda di includere tutte le definizioni dello spazio dei nomi XML utilizzate come attributi nella atom:entry
quando pubblichi la nuova voce. Se le ometti, le eccezioni verranno analizzate. Inoltre, tidy
sostituirà gli spazi tra le definizioni dello spazio dei nomi e li sostituirà con caratteri di nuova riga. Si tratta di un codice XML valido, ma al momento i Servizi dati Google non lo accettano. Se utilizzi tidy
, assicurati di aggiungere spazi tra questi attributi nell'elemento entry
.
3. Pubblicazione della nuova voce sul server
Il comando curl
per pubblicare una nuova voce nel server è molto simile all'aggiornamento di una voce esistente, tranne per il fatto che l'URL è diverso:
curl --silent --request POST --data-binary "@template_entry.xml" --header "Content-Type: application/atom+xml" --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/feed/api/user/brad.gushue" | tidy -xml -indent -quiet
Se il post ha esito positivo, l'output XML risultante è una copia della voce appena creata. Questa voce include gli elementi generati dal server al momento della creazione, inclusi i valori degli elementi atom:id
, atom:published
, atom:updated
e atom:link
. I valori link
generati possono essere utilizzati per modificare o eliminare la voce, a condizione che nel frattempo non vengano apportate altre modifiche .
Eliminazione di voci
L'eliminazione delle voci è molto simile all'aggiornamento delle voci, ad eccezione del fatto che viene utilizzato un metodo HTTP DELETE
invece di HTTP PUT
e non è necessario inviare dati. Analogamente alla richiesta di aggiornamento, l'URL edit
viene utilizzato come target della richiesta HTTP.
curl --silent --request DELETE --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/entry/api/user/brad.gushue/albumid/9810315389720904593/123456"
Caricamento di oggetti multimediali
Una funzionalità importante dell'API di dati di Picasa Web Album e dell'API di dati dell'elenco documenti è la possibilità di caricare oggetti binari. cURL può facilmente caricare dati binari e un'intestazione slug. Tuttavia, l'API di dati dell'elenco documenti richiede attualmente la pubblicazione di file XML con i dati binari sotto forma di messaggio multiparte MIME. La formulazione del messaggio multiparte non rientra nell'ambito di questo articolo.
L'esempio seguente mostra come caricare un'immagine chiamata sweeping_the_rock.png
in un album web Picasa con il titolo "Spazzare la roccia":
curl --silent --request POST --data-binary "@sweeping_the_rock.png" --header "Slug: Sweeping the rock" --header "Content-Type: image/png" --header "Authorization: GoogleLogin auth=ABCDEFG" "http://picasaweb.google.com/data/feed/api/user/brad.gushue/albumid/5113621341847124417" | tidy -xml -indent -quiet
Altri strumenti a riga di comando
Alcuni sviluppatori preferiscono imparare o eseguire il debug utilizzando altri strumenti a riga di comando.
Tra gli strumenti più diffusi figurano:
- telnet,opensl viene utilizzato per effettuare connessioni socket non elaborate (rispettivamente in testo normale e SSL) ai server web e può essere utilizzato per interagire con i servizi di dati di Google. Tieni presente che non tutti i servizi dati Google potrebbero supportare SSL. Ecco come aprire le connessioni:
telnet picasaweb.google.com 80
(API di dati di Picasa Web Album)openssl s_client -connect www.google.com:443
(API di dati di Google Calendar e altri servizi su www.google.com)
POST /data/feed/api/user/brad.gushue HTTP/1.1 Host: picasaweb.google.com Authorization: GoogleLogin auth=ABCDEFG Content-Length: 493 <entry xmlns='http://www.w3.org/2005/Atom' xmlns:gphoto='http://schemas.google.com/photos/2007'> <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#album' /> <title type='text'>Curling in Canada</title> <summary type='text'>Pictures of all my curling matches in Canada.</summary> <gphoto:location>Canada</gphoto:location> <gphoto:access>public</gphoto:access> <gphoto:commentingEnabled>true</gphoto:commentingEnabled> </entry>
Quando invii dati HTTP non elaborati, tieni presente che le operazioniPOST
ePUT
richiedono il calcolo del valore per un'intestazioneContent-Length
. Puoi utilizzare lo strumento UNIXwc
per calcolare questo valore. Inserisci tutti i contenuti del corpo HTTP in un file di testo, ad esempiotemplate_entry.xml
(esempio utilizzato sopra) ed eseguiwc -c template_entry.xml
. Spesso è difficile eseguire il debug se usi accidentalmente un valore errato per l'intestazioneContent-Length
. - wget viene in genere utilizzato per scaricare dati da un server web a un file locale. Tuttavia,
wget
offre molte opzioni che consentono di eseguire tutti i diversi tipi di richieste necessarie per interagire con i servizi di dati di Google. Ecco un esempio di come usarewget
perPOST
una nuova voce di album in Picasa Web Album:wget --post-file template_entry.xml --header "Authorization: GoogleLogin auth=ABCDEFG" --header "Content-Type: application/atom+xml" "http://picasaweb.google.com/data/feed/api/user/brad.gushue"
- xsltproc è uno strumento per applicare le trasformazioni XSL (XSLT) ai documenti XML. Può essere utilizzato per estrarre facilmente i dati desiderati da una voce o un feed XML restituiti dalle API di dati di Google o per generare voci nuove o aggiornate.
Conclusione
Come hai visto, cURL e molti altri strumenti a riga di comando possono essere utilizzati per interagire facilmente con i servizi di dati di Google utilizzando XML e HTTP non elaborati. Unisciti a noi nei forum specifici per le API per eventuali domande sull'utilizzo di questi strumenti con la tua API di dati di Google preferita.