Recientemente, Dropbox anunció su nueva API de Datastore y Drop-ins, un par de nuevas y excelentes características destinadas a aprovechar el poder de acceso a los archivos y (ahora con Datastores) otra información general de cualquier dispositivo y mantener la información sincronizada en todas las plataformas, sin complicaciones..
Hoy en día, la API del almacén de datos solo admite casos de uso de un solo usuario, pero los escenarios de múltiples usuarios están en planes futuros para Dropbox.
Comencemos discutiendo qué son los almacenes de datos. Puede pensar en ellos como una pequeña base de datos para mantener pares de información clave / valores. Ahora, puede decir que su aplicación podría usar un servicio web con una base de datos y que sus datos serán los mismos en todos los dispositivos, y si bien esto es cierto, al usar la API del almacén de datos, estamos eliminando la sobrecarga de manejar una copia de seguridad. servicio final.
Teniendo esto en cuenta, las aplicaciones que no necesitan almacenar una gran cantidad de datos de usuarios y no requieren un gran procesamiento, pueden delegar la administración de la base de datos a Dropbox y olvidarse de manejarla manualmente. Tomemos por ejemplo un juego multiplataforma. Desearía permitir que el usuario lo juegue en su iPad por la mañana, vaya al trabajo y mientras esté en el tráfico, continúe jugando en su iPhone. En este escenario, normalmente necesitará que el usuario inicie sesión en el sistema, juegue y luego guarde su progreso..
Ahora, con la API del almacén de datos, puede olvidarse de todo el proceso de inicio de sesión y la sobrecarga de manejar los datos de progreso, simplemente use el SDK proporcionado y almacene la información que desea almacenar, más tarde ese día cuando su usuario abra su aplicación desde otro Dropbox. dispositivo conectado, puede recuperar fácilmente su información. En este caso, Dropbox maneja el almacenamiento, la seguridad y la privacidad de la información..
Aunque, a partir de ahora, la API del almacén de datos solo admite casos de uso de un solo usuario. Según Dropboxer Steve M., los escenarios multiusuario están en planes futuros para Dropbox.
Si alguna vez ha utilizado un marco / biblioteca de JavaScript y ha encontrado aplicaciones de ejemplo, es probable que en alguna de esas aplicaciones haya una aplicación de TODO de algún tipo. Por lo tanto, con el espíritu de mantener las cosas coherentes y demostrar algunas de las características más comunes, construyamos una aplicación TODO utilizando la API del almacén de datos de Dropbox..
Como este es un tutorial sobre las funcionalidades de Dropbox que se ofrecen a los desarrolladores, no voy a explicar el HTML ni el CSS en la aplicación, puede encontrarlos en los archivos que acompañan a este tutorial..
En primer lugar, como con la mayoría de las API públicas, necesitamos crear una nueva aplicación dentro del sistema. Para hacer esto, inicie sesión en su cuenta de Dropbox y diríjase a la Consola de aplicaciones. Haga clic en "Crear aplicación", seleccionar "Aplicación API de Dropbox" y "Sólo almacenes de datos" y finalmente ponle un nombre a tu aplicación.
Puede estar tentado a seleccionar "Archivos y almacenes de datos", Sin embargo, si su aplicación no está utilizando este permiso, cuando solicite el estado de producción, se rechazará, respete las políticas de Dropbox para cada aplicación que cree..
Ahora tienes una nueva aplicación en Dropbox y puedes comenzar a utilizar la API del almacén de datos (y otros recursos). Para hacer esto, necesitarías tu Clave de aplicación. Si usa el SDK de JavaScript, como lo haremos en este tutorial, no necesita su App secreta (mantén esta cadena en secreto).
Vamos a utilizar el SDK de JavaScript proporcionado por Dropbox para interactuar con la API del almacén de datos. Para instalarlo, simplemente agregue la siguiente declaración de script a su documento HTML encima el script para su aplicación.
Nuestra aplicación será un único archivo JavaScript bajo la "js"
carpeta. Crear un nuevo "app.js"
archivo con el siguiente código:
var client = new Dropbox.Client (key: YOUR_DROPBOX_APP_KEY), TodosApp = TodosApp || todosList: null, init: function () , checkClient: function () , createTodo: function (e) , updateTodos: function () ; $ ('documento') .ready (TodosApp.init);
Lo que esto hace es crear un nuevo objeto de Dropbox Client usando la clave de la aplicación obtenida de la consola de la aplicación. Luego define nuestro objeto de aplicación y cuando todo está listo, lo llamamos en eso
método.
Lo primero que debe hacer nuestra aplicación es verificar si tenemos un token de acceso para el usuario de nuestra aplicación. Agregue el siguiente código a la en eso
método:
client.authenticate (interactive: false, function (error, response) if (error) console.log ('error de OAuth:' + error);); TodosApp.checkClient ();
Aquí estamos tratando de autenticar al usuario de la aplicación en el servidor API de Dropbox. Estableciendo el interactivo
opción a falso
, Le pedimos al método que no redirija al usuario al sitio de Dropbox para la autenticación, de esta manera nuestra aplicación puede continuar su flujo normal. Vamos a enviar manualmente al usuario allí más tarde.
Ahora debemos verificar si el usuario está autenticado y, de ser así, proceder a cargar sus datos. Agregue el siguiente código a su CheckClient
método:
checkClient: function () if (client.isAuthenticated ()) $ ('# link-button') .fadeOut (); $ ('#main') .fadeIn (); else $ ('#main') .fadeOut ();
Aquí estamos actualizando nuestra interfaz en función de si el usuario ha sido autenticado o no..
Hasta ahora, nuestra interfaz de aplicación se está actualizando en consecuencia, si el usuario está autenticado o no. Ahora vamos a manejar el proceso de autenticación del usuario en el sistema. Agregue el siguiente código a la más
declaración de la CheckClient
método:
$ ('# link-button') .click (function () client.authenticate (););
Esto es simplemente una devolución de llamada que se llama cuando el usuario hace clic en el "Conectar Dropbox" Botón en la interfaz. Tenga en cuenta que no estamos configurando el interactivo
Opción esta vez, permitiendo así la redirección. Si el usuario no ha iniciado sesión en Dropbox, se mostrará un formulario de inicio de sesión y el sistema le pedirá al usuario que permita la aplicación..
Una vez que se le haya otorgado acceso a la aplicación, el usuario se redireccionará a nosotros. En este caso, la llamada a la es autenticado
el método devolverá verdadero, en este punto necesitamos recuperar los datos almacenados de Dropbox del usuario. Agregue el siguiente código a la Si
declaración de la CheckClient
método:
client.getDatastoreManager (). openDefaultDatastore (function (error, Datastore) if (error) console.log ('Error del almacén de datos:' + error); todosList = Datastore.getTable ('todos'); TodosApp.updateTodos () ; Datastore.recordsChanged.addListener (TodosApp.updateTodos););
Este método recupera el almacén de datos del usuario autenticado y accede al todos
mesa. Contrariamente a una tabla SQL, la estructura de la tabla no tiene que definirse antes de su uso, de hecho, la tabla ni siquiera existe hasta que le agregamos datos.
Lo que esto significa también es que la tabla puede contener cualquier dato, y un registro no tiene que tener los mismos datos que los otros. Sin embargo, es una buena práctica preservar una estructura similar, si no igual, entre los registros..
En este punto, tenemos la información de todos del usuario, sin embargo, no se muestra al usuario. Para hacer esto, simplemente agregue el siguiente código a la updateTodos
método:
var list = $ ('#todos'), records = todosList.query (); list.empty (); para (var i = 0; i < records.length; i++ ) var record = records[i], item = list.append( $( '