Recent, Dropbox și-a anunțat noile aplicații Datastore API și Drop-in, câteva noi caracteristici noi, menite să mobilizeze puterea de accesare a fișierelor și (acum cu Datastores) alte informații generale de pe orice dispozitiv și să păstreze acele date sincronizate pe toate platformele,.
Astăzi, Datastore API suportă numai cazuri de utilizare pentru un singur utilizator, dar scenarii pentru mai mulți utilizatori sunt în planurile viitoare pentru Dropbox.
Să începem prin a discuta despre ce sunt datastorele. Vă puteți gândi la ele ca la o bază de date mică pentru a păstra perechi de informații cheie / valori. Acum, puteți spune că aplicația dvs. ar putea utiliza un serviciu web cu o bază de date și datele dvs. vor fi identice în toate dispozitivele și, în timp ce acest lucru este adevărat, prin utilizarea API-ului Datastore, serviciu final.
Având în vedere acest lucru, aplicațiile care nu au nevoie să stocheze o cantitate mare de date de utilizator și nu necesită procesare intensă, pot delega gestionarea bazei de date la Dropbox și pot uita să o manipuleze manual. Luați, de exemplu, un joc pe mai multe platforme. Ați dori să permiteți utilizatorului să-l joace pe iPad dimineața, să se îndrepte spre serviciu și în timp ce vă aflați în trafic, continuați să jucați pe iPhone. În acest scenariu, în mod normal, ar trebui ca acel utilizator să se logheze în sistem, să se joace și apoi să salveze progresul.
Acum, cu API-ul Datastore puteți să uitați de întregul proces de conectare și de cheltuielile aferente manipulării datelor despre progres, utilizați SDK-ul furnizat și stocați informațiile pe care doriți să le stocați mai târziu în ziua în care utilizatorul dvs. vă deschide aplicația dintr-un alt Dropbox un dispozitiv conectat, puteți să le preluați cu ușurință informațiile. În acest caz, Dropbox gestionează stocarea, securitatea și confidențialitatea informațiilor.
Deși, încă de acum, API-ul Datastore suportă numai cazuri de utilizare pentru un singur utilizator. Potrivit Dropboxer Steve M., scenarii cu utilizatori multipli sunt în planurile viitoare pentru Dropbox.
Dacă ați folosit vreodată un cadru / bibliotecă JavaScript și ați găsit aplicații de exemplu, este posibil ca într-una din aceste aplicații să existe o aplicație TODO de un fel. Deci, în spiritul păstrării coerenței și al demonstrării unora dintre cele mai comune caracteristici, să construim o aplicație TODO utilizând API-ul Dropbox Datastore.
Deoarece acesta este un tutorial despre funcționalitățile Dropbox oferite dezvoltatorilor, nu voi explica HTML și CSS în aplicație, le puteți găsi pe cele din fișierele care însoțesc acest tutorial.
În primul rând, ca și în cazul majorității API-uri publice, trebuie să creați o nouă aplicație în cadrul sistemului. Pentru aceasta, conectați-vă la contul Dropbox și mergeți la Consola de aplicații. Click pe "Creați aplicația", Selectați "Aplicația API Dropbox" și "Numai cu date de stocare" și în final dați aplicației dvs. un nume.
Ați putea fi tentat să selectați "Fișiere și baze de date", cu toate acestea, dacă aplicația dvs. nu utilizează de fapt această permisiune, atunci când solicitați starea de producție, aceasta va fi respinsă, respectați politicile Dropbox pentru fiecare aplicație pe care o creați.
Acum aveți o nouă aplicație în Dropbox și puteți începe să utilizați API-ul Datastore (și alte resurse). Pentru a face asta, ai nevoie de tine Cheia aplicației. Dacă utilizați setul SDK JavaScript, așa cum vom face în acest tutorial, nu aveți nevoie de dvs. Secretul aplicației (păstrați secretul acestui șir).
Vom folosi SDK-ul JavaScript oferit de Dropbox pentru a interacționa cu API-ul Datastore. Pentru ao instala, pur și simplu adăugați următoarea declarație de script în documentul dvs. HTML de mai sus scriptul pentru aplicația dvs..
Cererea noastră va fi un singur fișier JavaScript sub "js"
pliant. Creaza un nou "app.js"
fișier cu următorul cod:
var client = nou Dropbox.Client (key: YOUR_DROPBOX_APP_KEY), TodosApp = TodosApp || todosList: null, init: function () , checkClient: functie () , createTodo: functie (e) , updateTodos: function () ; $ ('document') .ready (TodosApp.init);
Ceea ce face este să creați un nou obiect Dropbox Client folosind cheia App obținută din consola de aplicații. Apoi definește obiectul nostru de aplicare și când totul este gata, numim init
metodă.
Primul lucru pe care aplicația trebuie să-l facă este să verifice dacă avem un jeton de acces pentru utilizatorul aplicației noastre. Adăugați următorul cod la init
metodă:
client.authenticate (interactive: false, funcția (eroare, răspuns) if (error) console.log ('Eroare OAuth: + eroare)); TodosApp.checkClient ();
Aici încercăm să autentificăm utilizatorul aplicației la serverul API Dropbox. Prin setarea interactiv
opțiunea pentru fals
, solicităm metodei să nu redirecționeze utilizatorul la site-ul Dropbox pentru autentificare, astfel încât aplicația noastră să își poată continua fluxul normal. Vom trimite manual utilizatorul acolo mai târziu.
Acum trebuie să verificăm dacă utilizatorul este autentificat și, dacă da, continuați să încărcați datele. Adăugați următorul cod la adresa dvs. checkClient
metodă:
checkClient: funcția () if (client.isAuthenticated ()) $ ('# link-button') .fadeOut (); $ ('#main') .fadeIn (); altceva $ ('#main') .fadeOut ();
Aici actualizăm interfața noastră în mod corespunzător, pe baza faptului dacă utilizatorul a fost autentificat sau nu.
Până în prezent, interfața noastră de aplicație este actualizată în mod corespunzător, dacă utilizatorul este autentificat sau nu. Acum vom gestiona procesul de autentificare a utilizatorului în sistem. Adăugați următorul cod la altfel
declarație a checkClient
metodă:
$ ('# link-button'). clic (functie () client.authenticate (););
Acesta este doar un apel invers care se numește atunci când utilizatorul face clic pe "Conectați Dropbox" butonul din interfață. Rețineți că nu setăm interactiv
de această dată, permițând astfel redirecționarea. Dacă utilizatorul nu este conectat la Dropbox, va fi afișat un formular de autentificare și sistemul va cere utilizatorului să permită aplicarea.
După ce utilizatorul a primit accesul la aplicație, acesta va redirecționa înapoi la noi. În acest caz, apelul către isAuthenticated
metoda va reveni la adevărat, în acest moment trebuie să preluăm datele stocate de Dropbox ale utilizatorului. Adăugați următorul cod la dacă
declarație a checkClient
metodă:
client.getDatastoreManager () funcția (eroare, Datastore) if (eroare) console.log ('eroare Datastore:' + eroare); todosList = Datastore.getTable (TodosApp.updateTodos) ; Datastore.recordsChanged.addListener (TodosApp.updateTodos););
Această metodă readuce Datastore-ul utilizatorului autentificat și accesează Todos
masa. Contrar unui tabel SQL, structura tabelului nu trebuie să fie definită înainte de utilizare, de fapt, tabelul nu există nici măcar până când nu îi adăugăm date.
Ceea ce înseamnă, de asemenea, că tabela poate conține orice date și că o înregistrare nu trebuie să aibă aceleași date ca celelalte. Cu toate acestea, este o bună practică păstrarea unei înregistrări similare între structurile similare, dacă nu egale.
În acest moment, avem informațiile utilizatorului despre todos, dar acesta nu este afișat pentru utilizator. Pentru a face acest lucru, trebuie doar să adăugați următorul cod la updateTodos
metodă:
var list = $ ('#todos'), înregistrări = todosList.query (); list.empty (); pentru (var i = 0; i < records.length; i++ ) var record = records[i], item = list.append( $( '