Recentemente, Dropbox ha annunciato la sua nuova API Datastore e Drop-in, un paio di fantastiche nuove funzionalità volte a sfruttare la potenza di accesso ai file e (ora con Datastore) altre informazioni generali da qualsiasi dispositivo e mantenere tali dati sincronizzati su tutte le piattaforme, senza problemi.
Oggi, l'API di Datastore supporta solo casi d'uso per utente singolo, ma gli scenari per più utenti sono nei piani futuri per Dropbox.
Iniziamo discutendo quali sono i datastore. Puoi considerarli come un piccolo database per conservare coppie di valori chiave / valori. Ora, potresti dire che la tua applicazione potrebbe utilizzare un servizio web con un database e i tuoi dati saranno gli stessi su tutti i dispositivi, e mentre questo è vero, usando l'API Datastore, stiamo eliminando il sovraccarico di gestione di un back- fine servizio.
Con questo in mente, le applicazioni che non hanno bisogno di memorizzare una grande quantità di dati utente e non richiedono un'elaborazione pesante, possono delegare la gestione del database a Dropbox e dimenticare di gestirla manualmente. Prendi ad esempio un gioco multipiattaforma. Dovresti consentire all'utente di giocare sul proprio iPad al mattino, andare al lavoro e mentre sei nel traffico, continua a giocare sul loro iPhone. In questo scenario normalmente avresti bisogno di quell'utente per accedere al sistema, giocare, e quindi salvare i loro progressi.
Ora con l'API di Datastore puoi dimenticare l'intero processo di accesso e il sovraccarico di gestione dei dati di avanzamento, basta utilizzare l'SDK fornito e archiviare le informazioni che desideri memorizzare, più tardi quel giorno in cui l'utente apre l'applicazione da un altro Dropbox dispositivo connesso, è possibile recuperare facilmente le proprie informazioni. In questo caso, Dropbox gestisce l'archiviazione, la sicurezza e la riservatezza delle informazioni.
Sebbene, al momento, l'API Datastore supporta solo casi d'uso per utente singolo. Secondo Dropboxer Steve M., gli scenari multiutente sono nei piani futuri per Dropbox.
Se hai mai usato un framework / libreria JavaScript e hai trovato applicazioni di esempio, è probabile che in una di quelle app ci fosse una qualche applicazione TODO. Quindi, nello spirito di mantenere le cose coerenti e di dimostrare alcune delle funzionalità più comuni, costruiamo un'applicazione TODO utilizzando l'API di Dropbox Datastore.
Poiché questo è un tutorial sulle funzionalità di Dropbox offerte agli sviluppatori, non ho intenzione di spiegare l'HTML né i CSS nell'applicazione, puoi trovarli nei file che accompagnano questo tutorial.
Prima di tutto, come con la maggior parte delle API pubbliche, abbiamo bisogno di creare una nuova applicazione all'interno del sistema. Per fare ciò, accedi al tuo account Dropbox e vai alla App Console. Clicca su "Crea app", selezionare "App Dropbox API" e "Solo datastore" e infine dai un nome alla tua app.
Potresti essere tentato di selezionare "File e archivi dati", tuttavia se la tua applicazione non sta utilizzando questa autorizzazione, quando richiedi lo stato di produzione, verrà negata, aderirà alle norme di Dropbox per ogni applicazione che crei.
Ora hai una nuova applicazione in Dropbox e puoi iniziare a utilizzare l'API Datastore (e altre risorse). Per fare questo, avrai bisogno del tuo Chiave app. Se usi l'SDK JavaScript, come faremo in questo tutorial, non hai bisogno del tuo App Secret (mantenere questa stringa segreta).
Utilizzeremo l'SDK JavaScript fornito da Dropbox per interagire con l'API Datastore. Per installarlo, aggiungi semplicemente la seguente dichiarazione di script al tuo documento HTML sopra lo script per la tua applicazione.
La nostra applicazione sarà un singolo file JavaScript sotto il "js"
cartella. Crea un nuovo "app.js"
file con il seguente codice:
var client = new Dropbox.Client (chiave: YOUR_DROPBOX_APP_KEY), TodosApp = TodosApp || todosList: null, init: function () , checkClient: function () , createTodo: function (e) , updateTodos: function () ; $ ('document') .ready (TodosApp.init);
Ciò che fa è creare un nuovo oggetto Client Dropbox utilizzando il tasto App ottenuto dalla console dell'app. Definisce quindi il nostro oggetto applicazione e quando tutto è pronto, chiamiamo il dentro
metodo.
La prima cosa che dovrebbe fare la nostra applicazione è controllare se abbiamo un token di accesso per l'utente della nostra applicazione. Aggiungi il seguente codice al dentro
metodo:
client.authenticate (interactive: false, function (error, response) if (error) console.log ('OAuth error:' + error);); TodosApp.checkClient ();
Qui stiamo cercando di autenticare l'utente dell'app sul server dell'API Dropbox. Impostando il interattivo
opzione a falso
, stiamo chiedendo al metodo di non reindirizzare l'utente al sito Dropbox per l'autenticazione, in questo modo la nostra applicazione può continuare il suo flusso normale. In seguito, invieremo manualmente l'utente.
Ora dobbiamo verificare se l'utente è autenticato e, in tal caso, procedere con il caricamento dei dati. Aggiungi il seguente codice al tuo CheckClient
metodo:
checkClient: function () if (client.isAuthenticated ()) $ ('# link-button') .fadeOut (); $ ('#main') .fadeIn (); else $ ('#main') .fadeOut ();
Qui stiamo aggiornando la nostra interfaccia di conseguenza, in base al fatto che l'utente sia stato autenticato o meno.
Finora abbiamo aggiornato la nostra interfaccia dell'applicazione, se l'utente è autenticato o meno. Ora gestiremo il processo di autenticazione dell'utente nel sistema. Aggiungi il seguente codice al altro
dichiarazione del CheckClient
metodo:
$ ('# link-button') .click (function () client.authenticate (););
Questo è semplicemente un callback che viene chiamato quando l'utente fa clic su "Connetti Dropbox" pulsante nell'interfaccia. Si noti che non stiamo impostando il interattivo
opzione questa volta, consentendo così il reindirizzamento. Se l'utente non ha effettuato l'accesso a Dropbox, verrà visualizzato un modulo di accesso e il sistema chiederà all'utente di consentire l'applicazione.
Una volta che l'utente ha avuto accesso all'applicazione, verrà reindirizzato a noi. In questo caso, la chiamata al IsAuthenticated
il metodo restituirà true, a questo punto dobbiamo recuperare i dati memorizzati di Dropbox dell'utente. Aggiungi il seguente codice al Se
dichiarazione del CheckClient
metodo:
client.getDatastoreManager (). openDefaultDatastore (function (error, Datastore) if (error) console.log ('Errore datastore:' + error); todosList = Datastore.getTable ('todos'); TodosApp.updateTodos () ; Datastore.recordsChanged.addListener (TodosApp.updateTodos););
Questo metodo recupera il Datastore dell'utente autenticato e accede a Todos
tavolo. Contrariamente a una tabella SQL, la struttura della tabella non deve essere definita prima dell'utilizzo, infatti la tabella non esiste nemmeno finché non aggiungiamo dati ad essa.
Ciò significa anche che la tabella può contenere tutti i dati e che un record non deve avere gli stessi dati degli altri. Tuttavia, è buona norma conservare una struttura simile, se non uguale, tra i record.
A questo punto abbiamo le informazioni di todos dell'utente, tuttavia non è visualizzato all'utente. Per fare ciò, basta aggiungere il seguente codice al updateTodos
metodo:
var list = $ ('#todos'), records = todosList.query (); list.empty (); per (var i = 0; i < records.length; i++ ) var record = records[i], item = list.append( $( '