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 dati di Google.

L'applicazione client può utilizzare l'API di dati di Blogger per creare nuovi post del blog, modificare o eliminare i post del blog esistenti e fare query per post di blog che corrispondono a criteri specifici.

Oltre a fornire alcune informazioni sulle funzionalità dell'API di dati di Blogger, questo documento fornisce esempi di interazioni di base di API di dati utilizzando la libreria client JavaScript. Se ti interessa saperne di più sul protocollo sottostante utilizzato dalla libreria, consulta la sezione sul protocollo della guida di questo sviluppatore.

Contenuti

Pubblico

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

Per informazioni di riferimento sull'API di dati di Blogger, consulta la guida di riferimento del protocollo. Questo documento presuppone che tu abbia compreso le idee generali alla base del protocollo API di dati Google e il modello dei dati e il flusso di controllo utilizzati dalla libreria client di JavaScript. Presuppone inoltre che tu sappia come programmare in JavaScript.

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

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

Termini e condizioni d'uso

L'utente accetta di rispettare i Termini e condizioni d'uso della libreria client Google JavaScript quando utilizza la libreria client JavaScript.

Informazioni sugli ambienti supportati

Attualmente supportiamo solo 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 pensare: "Ma la stessa norma di origine?" La libreria client JavaScript consente al client di inviare richieste API Google Data da qualsiasi dominio, pur rimanendo conforme al modello di sicurezza del browser.

Per cominciare

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

Creazione di un account Blogger

Ti consigliamo di creare un account Blogger per scopi di test. Blogger utilizza gli Account Google pertanto, se hai già un Account Google, non devi fare altro.

Acquisire la biblioteca

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

Inizia utilizzando un tag <script> nella sezione <head> del documento HTML per recuperare il caricatore dell'API Google AJAX:

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

Per acquisire la libreria client dell'API di dati Google dopo aver recuperato il caricatore, utilizza la riga seguente nel codice di configurazione JavaScript, che deve essere chiamata 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 per google.load() è il numero di versione richiesto della libreria client JavaScript.Il nostro schema di numerazione delle versioni si basa su quello utilizzato dall'API di Google Maps. Ecco i possibili numeri di versione e il loro significato:

"1"
La penultima revisione della versione 1 principale.
"1.x"
L'ultima revisione della versione principale 1.
"1.s"
L'ultima revisione stabile della versione principale 1. A volte dichiariamo che una determinata versione della libreria client è "stabile", in base al feedback che riceviamo dagli sviluppatori. Tuttavia, tale versione potrebbe non disporre delle funzionalità più recenti.
"1.0", "1.1" ecc.
Una versione specifica della libreria, con un numero di revisione principale e secondario specificato.

Dopo aver chiamato google.load(), devi comunicare al caricatore di attendere che la pagina termini il caricamento e di chiamare il codice:

google.setOnLoadCallback(getMyBlogFeed);

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

Autenticazione al servizio Blogger

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

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

Autenticazione proxy AuthSub

L'autenticazione del proxy AuthSub viene utilizzata dalle applicazioni web che devono autenticare gli 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 invece riceve token AuthSub speciali che consentono al client di agire per conto di un determinato utente.

Ecco una breve panoramica di ciò che accade durante il processo di autenticazione per un client JavaScript basato sul Web:

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

Nota: per consentire alla libreria client JavaScript di effettuare richieste Blogger autenticate in un browser web, la tua pagina deve contenere un'immagine ospitata sullo stesso dominio della pagina. Può essere qualsiasi immagine, anche un'immagine trasparente con un solo pixel, ma nella pagina deve essere presente un'immagine. Se vuoi che l'immagine non venga visualizzata nella tua pagina, puoi utilizzare l'attributo style del tag <img> per posizionare l'immagine 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 un 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: consigliamo vivamente di fornire un pulsante di accesso o un altro meccanismo di inserimento dell'utente per richiedere all'utente di avviare la procedura di accesso manualmente. Se, invece, chiami google.accounts.user.login() immediatamente dopo il caricamento, senza attendere l'interazione dell'utente, la prima cosa che l'utente vede all'arrivo nella pagina sarà la pagina di accesso di Google. Se l'utente decide di non eseguire l'accesso, Google non lo reindirizza alla tua pagina; pertanto, dal punto di vista dell'utente, ha provato a visitare la tua pagina, ma è stato indirizzato senza mai rimandarla. Questo scenario potrebbe creare confusione e frustrazione per gli 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 denominata 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 chiamato google.gdata.client.init(), che verifica che il browser in cui è in esecuzione il client sia supportato. Se c'è un errore, la libreria client mostra un messaggio di errore all'utente. Se vuoi gestire questo tipo di errore autonomamente, 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 di errore standard; puoi fare tutto ciò che vuoi con l'oggetto.

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 mantenuto in tutte le sessioni del browser, quindi l'utente può chiudere il browser e riaprirlo, quindi tornare sul client e l'utente continuerà a eseguire l'accesso.

Tuttavia, in certi casi insoliti un token può diventare non valido 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 quindi chiamando di nuovo login() per acquisire un nuovo token valido.

Esistono altri due metodi di autenticazione AuthSub utili in vari contesti:

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

Per dettagli sull'utilizzo di JavaScript per interagire con AuthSub, incluse le informazioni sulla gestione dei token e su checkLogin() e getInfo(), consulta il documento Utilizzo di AuthSub & Authentication con la libreria client JavaScript.

Torna all'inizio