Guida per gli sviluppatori: JavaScript

L'API Blogger Data consente alle applicazioni client di visualizzare e aggiornare i contenuti di Blogger sotto forma di feed dell'API di dati di Google.

L'applicazione client può utilizzare l'API Blogger Data per creare nuovi post del blog, modificare o eliminare quelli esistenti e eseguire query sui post del blog che soddisfano determinati criteri.

Oltre a fornire alcune informazioni sulle funzionalità dell'API di dati di Blogger, questo documento fornisce esempi di interazioni di base con l'API di dati utilizzando la libreria client JavaScript. Se vuoi saperne di più sul protocollo di base utilizzato dalla libreria, consulta la sezione Protocollo di questa guida per gli sviluppatori.

Sommario

Pubblico

Questo documento è rivolto ai programmatori che vogliono scrivere applicazioni client JavaScript in grado di interagire con Blogger. Fornisce una serie di esempi di interazioni di base con l'API Data utilizzando la libreria client JavaScript.

Per informazioni di riferimento sull'API Blogger Data, consulta la guida di riferimento del protocollo. Questo documento assume che tu comprenda le idee generali alla base del protocollo delle API di dati di Google, nonché il modello di dati e il flusso di controllo utilizzati dalla libreria client JavaScript. Si presume inoltre che tu sappia programmare in JavaScript.

Per informazioni di riferimento sulle classi e sui metodi forniti dalla libreria client, consulta il riferimento all'API della libreria client JavaScript.

Questo documento è progettato per essere letto in ordine; ogni esempio si basa sugli esempi precedenti.

Termini di servizio

Accetti di rispettare i Termini e condizioni di utilizzo della libreria client JavaScript di Google quando utilizzi la libreria client JavaScript.

Informazioni sugli ambienti supportati

Al momento supportiamo solo le applicazioni client JavaScript che vengono eseguite in una pagina web in un browser. I browser attualmente supportati sono Firefox 1.5 e versioni successive e Internet Explorer 6.0 e versioni successive.

La libreria client JavaScript gestisce tutte le comunicazioni con il server del servizio. Se sei uno sviluppatore JS esperto, potresti chiederti: "Ma che ne è della norma sulla stessa origine?" La libreria client JavaScript consente al client di inviare richieste all'API Google Data da qualsiasi dominio, rispettando al contempo il modello di sicurezza del browser.

Per iniziare

Prima di poter scrivere un'applicazione client JavaScript, devi eseguire alcune configurazioni per acquisire la libreria.

Creare un account Blogger

Ti consigliamo di creare un account Blogger a scopo di test. Blogger utilizza gli Account Google, quindi se hai già un Account Google, non devi fare altro.

Acquisizione della libreria

Prima che il client possa utilizzare la libreria client, deve richiedere il codice della libreria client al server.

Per iniziare, utilizza un tag <script> nella sezione <head> del tuo documento HTML per recuperare il caricatore dell'API AJAX di Google:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Per acquisire la libreria client dell'API Google Data dopo aver recuperato il caricatore, utilizza la riga seguente nel codice di configurazione JavaScript, che deve essere chiamato dalla sezione <head> del documento HTML (o da un file JavaScript incluso utilizzando un tag <script> nella sezione <head> del documento HTML):

google.load("gdata", "1.x");

Il secondo parametro di google.load() è il numero di versione richiesta della libreria client JavaScript. Il nostro schema di numerazione delle versioni è basato su quello utilizzato dall'API Google Maps. Di seguito sono riportati i possibili numeri di versione e il loro significato:

"1"
L'ultima revisione della versione principale 1.
"1.x"
La revisione più recente della versione principale 1.
"1.s"
La revisione stabile più recente della versione principale 1. A volte dichiareremo una determinata versione della libreria client come "stabile", in base al feedback che riceviamo dagli sviluppatori. Tuttavia, questa versione potrebbe non includere le funzionalità più recenti.
"1.0", "1.1" e così via
Una versione specifica della libreria, con un numero di revisione principale e secondario specificato.

Dopo aver chiamato google.load(), devi dire al caricatore di attendere il termine del caricamento della pagina e poi chiamare il codice:

google.setOnLoadCallback(getMyBlogFeed);

dove getMyBlogFeed() è una funzione che definiremo in un'altra sezione di questo documento. Utilizza questo approccio anziché avere un gestore onload associato all'elemento <body>.

Autenticazione al servizio Blogger

Puoi accedere ai feed pubblici e privati utilizzando l'API Blogger Data. I feed pubblici non richiedono alcuna autenticazione, ma sono di sola lettura. Se vuoi modificare i blog, il tuo cliente deve autenticarsi prima di richiedere i feed privati.

La libreria client JavaScript utilizza il sistema di autenticazione AuthSub. Per maggiori informazioni sull'autenticazione con le API di dati di Google in generale, consulta la documentazione sull'autenticazione.

Autenticazione proxy AuthSub

L'autenticazione proxy AuthSub viene utilizzata dalle applicazioni web che devono autenticare i propri utenti negli Account Google. L'operatore del sito web e il codice client non hanno accesso al nome utente e alla password dell'utente di Blogger. Il client ottiene invece token AuthSub speciali che gli consentono di agire per conto di un determinato utente.

Ecco una breve panoramica di cosa succede durante la procedura di autenticazione per un client JavaScript basato su web:

  1. L'applicazione client chiama il metodo google.accounts.user.login() fornito dalla libreria client, passando un valore "scope" che indica quale servizio Google utilizzare. Per Blogger, l'ambito è "http://www.blogger.com/feeds/".
  2. La libreria client invia il browser alla pagina "Richiesta di accesso " di Google, dove l'utente può inserire le proprie credenziali per accedere al servizio.
  3. Se l'utente accede correttamente, il sistema AuthSub reindirizza il browser all'URL del client web, passando il token di autenticazione.
  4. La libreria client JavaScript memorizza il token in un cookie e restituisce il controllo alla funzione dell'applicazione client che ha chiamato google.accounts.user.login().
  5. Quando l'applicazione client chiama successivamente i metodi della libreria client che interagiscono con Blogger, la libreria client allega automaticamente il token a tutte le richieste.

Nota: affinché la libreria client JavaScript possa effettuare richieste di Blogger autenticate in un browser web, la pagina deve contenere un'immagine ospitata nello stesso dominio della pagina. Può essere qualsiasi immagine, anche un'immagine trasparente di un solo pixel, ma deve essere presente un'immagine nella pagina. Se non vuoi che l'immagine venga visualizzata nella pagina, puoi utilizzare l'attributo style del tag <img> per posizionarla al di fuori dell'area di rendering. Ad esempio: style="position:absolute; top: -1000px;"

Ecco il codice dell'applicazione client che gestisce l'accesso. Chiameremo la funzione setupMyService() da altro codice in un secondo momento.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

Suggerimento: ti consigliamo vivamente di fornire un pulsante di accesso o un altro meccanismo di input utente per chiedere all'utente di avviare manualmente la procedura di accesso. Se, invece, chiami google.accounts.user.login() immediatamente dopo il caricamento, senza aspettare l'interazione dell'utente, la prima cosa che l'utente vedrà al suo arrivo sulla tua pagina sarà una pagina di accesso a Google. Se l'utente decide di non accedere, Google non lo reindirizza alla tua pagina. Dal punto di vista dell'utente, ha provato a visitare la tua pagina, ma è stato reindirizzato altrove e non è mai tornato indietro. Questo scenario può creare confusione e frustrazione negli utenti. Nel codice di esempio di questo documento, chiameremo google.accounts.user.login() subito dopo il caricamento per semplificare l'esempio, ma sconsigliamo questo approccio per le applicazioni client reali.

Tieni presente che non devi fare nulla con la variabile token; la libreria client tiene traccia del token, quindi non devi farlo.

Nota: quando crei un nuovo oggetto BloggerService, la libreria client chiama un metodo denominato google.gdata.client.init(), che verifica che il browser in cui è in esecuzione il client sia supportato. Se si verifica un errore, la libreria client visualizza un messaggio di errore all'utente. Se vuoi gestire autonomamente questo tipo di errore, puoi chiamare esplicitamente google.gdata.client.init(handleInitError) prima di creare il servizio, dove handleInitError() è la tua funzione. Se si verifica un errore di inizializzazione, la funzione riceve un oggetto Error standard con cui puoi fare ciò che vuoi.

Il token rimane valido finché non lo revochi chiamando google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

Se non chiami logout(), il cookie che memorizza il token dura due anni, a meno che l'utente non lo elimini. Il cookie viene conservato tra le sessioni del browser, quindi l'utente può chiudere il browser, riaprirlo e tornare al tuo client senza dover effettuare nuovamente l'accesso.

Tuttavia, esistono alcune circostanze insolite in cui un token può diventare invalido durante una sessione. Se Blogger rifiuta un token, il client deve gestire la condizione di errore chiamando logout() per rimuovere il cookie contenente il token corrente e chiamando di nuovo login() per acquisire un nuovo token valido.

Esistono altri due metodi AuthSub che potresti trovare utili in vari contesti:

  • google.accounts.user.checkLogin(scope) indica se il browser ha o meno al momento un token di autenticazione per l'ambito specificato.
  • google.accounts.user.getInfo() fornisce informazioni dettagliate sul token corrente per il debug.

Per informazioni dettagliate sull'utilizzo di JavaScript per interagire con AuthSub, incluse informazioni sulla gestione dei token e su checkLogin() e getInfo(), consulta il documento Utilizzare l'autenticazione "AuthSub" con la libreria client JavaScript.

Torna all'inizio