Dropbox a récemment annoncé la mise en place de sa nouvelle API Datastore et de ses Drop-ins, deux nouvelles fonctionnalités destinées à exploiter au mieux la puissance d'accès aux fichiers et (désormais avec Datastores) d'autres informations générales issues de tout appareil et de synchroniser ces données sur toutes les plates-formes..
Aujourd'hui, l'API Datastore ne prend en charge que les cas d'utilisation pour un utilisateur unique, mais des scénarios pour plusieurs utilisateurs sont dans les plans futurs de Dropbox..
Commençons par discuter de ce que sont les magasins de données. Vous pouvez les considérer comme une petite base de données pour conserver des paires d'informations clé / valeur. Vous pouvez maintenant dire que votre application peut utiliser un service Web avec une base de données et que vos données seront les mêmes sur tous les périphériques. Bien que cela soit vrai, en utilisant l'API Datastore, nous évitons la surcharge liée à la gestion d'une service final.
Dans cet esprit, les applications qui n'ont pas besoin de stocker une grande quantité de données utilisateur et qui ne nécessitent pas un traitement lourd, peuvent déléguer la gestion de la base de données à Dropbox et oublier de la gérer manuellement. Prenons par exemple un jeu multi-plateforme. Vous voudriez permettre à l'utilisateur de le jouer sur son iPad le matin, au travail, et dans le trafic, de continuer à jouer sur son iPhone. Dans ce scénario, cet utilisateur doit normalement se connecter au système, jouer, puis enregistrer sa progression..
Désormais, avec l’API Datastore, vous pouvez oublier le processus de connexion complet et les frais généraux liés au traitement des données de progression. Il vous suffit d’utiliser le SDK fourni et de stocker les informations que vous souhaitez stocker plus tard dans la journée lorsque votre utilisateur ouvre votre application depuis une autre Dropbox. appareil connecté, vous pouvez facilement récupérer leurs informations. Dans ce cas, Dropbox gère le stockage, la sécurité et la confidentialité des informations..
Bien que, pour l’instant, l’API Datastore ne prend en charge que les cas d’utilisation mono-utilisateur. Selon Dropboxer Steve M., des scénarios multi-utilisateurs sont dans les plans futurs de Dropbox.
Si vous avez déjà utilisé un framework / une bibliothèque JavaScript et rencontré des exemples d'applications, il y a de fortes chances que l'une de ces applications contienne une application TODO. Ainsi, dans un souci de cohérence et de démonstration des fonctionnalités les plus courantes, construisons une application TODO à l'aide de l'API Dropbox Datastore..
Comme il s’agit d’un tutoriel sur les fonctionnalités de Dropbox offertes aux développeurs, je ne vais pas expliquer le code HTML ni le CSS dans l’application, vous pouvez les trouver dans les fichiers accompagnant ce tutoriel..
Tout d'abord, comme avec la plupart des API publiques, nous devons créer une nouvelle application dans le système. Pour ce faire, connectez-vous à votre compte Dropbox et dirigez-vous vers la console d'applications. Cliquer sur "Créer une application", sélectionner "Application API Dropbox" et "Datastores seulement" et enfin donner un nom à votre application.
Vous pourriez être tenté de choisir "Fichiers et magasins de données", Toutefois, si votre application n'utilise pas réellement cette autorisation, lorsque vous demandez le statut de production, elle sera refusée. Adhérez aux stratégies Dropbox pour chaque application créée..
Vous avez maintenant une nouvelle application dans Dropbox et vous pouvez commencer à utiliser l’API Datastore (et d’autres ressources). Pour ce faire, vous aurez besoin de votre Clé d'application. Si vous utilisez le SDK JavaScript, comme nous le verrons dans ce tutoriel, vous n’avez pas besoin de votre App Secret (garder cette chaîne secrète).
Nous allons utiliser le SDK JavaScript fourni par Dropbox pour interagir avec l'API Datastore. Pour l'installer, ajoutez simplement la déclaration de script suivante à votre document HTML au dessus de le script de votre application.
Notre application sera un fichier JavaScript unique sous le "js"
dossier. Créer un nouveau "app.js"
fichier avec le code suivant:
var client = new Dropbox.Client (clé: YOUR_DROPBOX_APP_KEY), TodosApp = TodosApp || todosList: null, init: function () , checkClient: function () , createTodo: function (e) , updateTodos: function () ; $ ('document') .ready (TodosApp.init);
Cela crée un nouvel objet Client Dropbox à l'aide de la clé d'application obtenue à partir de la console d'application. Il définit ensuite notre objet d’application et lorsque tout est prêt, nous appelons le init
méthode.
La première chose que notre application devrait faire est de vérifier si nous avons un jeton d'accès pour l'utilisateur de notre application. Ajoutez le code suivant au init
méthode:
client.authenticate (interactive: false, fonction (erreur, réponse) if (erreur) console.log ('erreur OAuth:' + erreur);); TodosApp.checkClient ();
Ici, nous essayons d'authentifier l'utilisateur de l'application auprès du serveur d'API Dropbox. En mettant le interactif
option de faux
, nous demandons à la méthode de ne pas rediriger l'utilisateur vers le site Dropbox pour l'authentification, afin que notre application puisse continuer son flux normal. Nous allons envoyer manuellement l'utilisateur plus tard.
Nous devons maintenant vérifier si l'utilisateur est authentifié et, le cas échéant, charger ses données. Ajoutez le code suivant à votre checkClient
méthode:
checkClient: function () if (client.isAuthenticated ()) $ ('# lien-bouton') .fadeOut (); $ ('#main') .fadeIn (); else $ ('#main') .fadeOut ();
Ici, nous mettons à jour notre interface en conséquence, selon que l'utilisateur est authentifié ou non..
Jusqu'à présent, notre interface d'application est mise à jour en conséquence, si l'utilisateur est authentifié ou non. Nous allons maintenant gérer le processus d’authentification de l’utilisateur dans le système. Ajoutez le code suivant au autre
déclaration du checkClient
méthode:
$ ('# link-button') .click (function () client.authenticate (););
Il s’agit simplement d’un rappel qui est appelé lorsque l’utilisateur clique sur le bouton "Connecter Dropbox" bouton dans l'interface. Notez que nous ne mettons pas la interactif
option cette fois, permettant ainsi la redirection. Si l'utilisateur n'est pas connecté à Dropbox, un formulaire de connexion s'affiche et le système demande à l'utilisateur d'autoriser l'application..
Une fois que l'utilisateur a été autorisé à accéder à l'application, il sera redirigé vers nous. Dans ce cas, l'appel du est authentifié
méthode retournera true, à ce stade, nous devons récupérer les données stockées par Dropbox de l'utilisateur. Ajoutez le code suivant au si
déclaration du checkClient
méthode:
client.getDatastoreManager (). openDefaultDatastore (function (error, Datastore) if (error) console.log ('Erreur datastore:' + error); todosList = Datastore.getTable ('todos'); TodosApp.updateTodos () ; Datastore.recordsChanged.addListener (TodosApp.updateTodos););
Cette méthode récupère le magasin de données de l'utilisateur authentifié et accède au todos
table. Contrairement à une table SQL, il n'est pas nécessaire de définir la structure de la table avant son utilisation. En fait, la table n'existe même pas avant que nous y ajoutions des données..
Cela signifie également que la table peut contenir toutes les données et qu'un enregistrement ne doit pas nécessairement contenir les mêmes données que les autres. Cependant, il est recommandé de conserver une structure similaire, sinon identique, entre les enregistrements..
À ce stade, nous avons les informations de l'utilisateur, mais elles ne sont pas affichées à l'utilisateur. Pour ce faire, ajoutez simplement le code suivant à la updateTodos
méthode:
var liste = $ ('#todos'), records = todosList.query (); list.empty (); pour (var i = 0; i < records.length; i++ ) var record = records[i], item = list.append( $( '