Uso de la API del núcleo de Java.pdf

5
Uso de la API del núcleo de Java El API Core está basado en HTTP y OAuth y proporciona llamadas de bajo nivel para acceder y manipular cuenta de Dropbox de un usuario. Si quieres seguir adelante, primero registrarse una nueva aplicación en la App consola. Usted necesitará la llave aplicación para acceder a la API de Core. A continuación, instale el SDK de Java y estará listo para funcionar. Autenticación de su aplicación El API Core utiliza OAuth v2, pero el SDK Java se hará cargo de la mayor parte de lo que no tiene que empezar de cero. Usted tendrá que proporcionar su clave de aplicación y secreto para el nuevo objeto DbxWebAuthNoRedirect. // Include the Dropbox SDK. import com.dropbox.core.*; import java.io.*; import java.util.Locale; public class Main { public static void main(String[] args) throws IOException, DbxException { // Get your app key and secret from the Dropbox developers website. final String APP_KEY = "INSERT_APP_KEY"; final String APP_SECRET = "INSERT_APP_SECRET"; DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET); DbxRequestConfig config = new DbxRequestConfig( "JavaTutorial/1.0", Locale.getDefault().toString()); DbxWebAuthNoRedirect webAuth = new DbxWebAuthNoRedirect(config, appInfo); Ahora estamos listos para iniciar el flujo de OAuth. El flujo de OAuth tiene dos partes: 1. Preguntar al usuario para autorizar la vinculación de su aplicación a su cuenta de Dropbox. 2. Una vez autorizada, cambiar el código de autorización recibida para un token de acceso, que se utiliza para llamar a la API Core. Vamos a empezar con el objeto DbxWebAuthNoRedirect para generar una URL de autorización con el método de inicio. authorizeUrl = webAuth.start() Con la autorización de URL en la mano, podemos pedir al usuario que autorice su aplicación. Para evitar la molestia de instalar un servidor web en este tutorial, sólo estamos imprimiendo la URL y pide al usuario que pulse la tecla para confirmar que han autorizado su aplicación Intro. Sin embargo, en aplicaciones del mundo real, usted desea enviar automáticamente al usuario a la URL de la autorización y pase una URL de devolución de llamada para que el usuario se redirige a la perfección su aplicación después de pulsar un botón.

Transcript of Uso de la API del núcleo de Java.pdf

Page 1: Uso de la API del núcleo de Java.pdf

Uso de la API del núcleo de Java El API Core está basado en HTTP y OAuth y proporciona llamadas de bajo nivel para acceder y manipular cuenta de Dropbox de un usuario. Si quieres seguir adelante, primero registrarse una nueva aplicación en la App consola. Usted necesitará la llave aplicación para acceder a la API de Core. A continuación, instale el SDK de Java y estará listo para funcionar.

Autenticación de su aplicación

El API Core utiliza OAuth v2, pero el SDK Java se hará cargo de la mayor parte de lo que no tiene que empezar de cero. Usted tendrá que proporcionar su clave de aplicación y secreto para el nuevo objeto DbxWebAuthNoRedirect. // Include the Dropbox SDK.

import com.dropbox.core.*;

import java.io.*;

import java.util.Locale;

public class Main {

public static void main(String[] args) throws IOException,

DbxException {

// Get your app key and secret from the Dropbox developers

website.

final String APP_KEY = "INSERT_APP_KEY";

final String APP_SECRET = "INSERT_APP_SECRET";

DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET);

DbxRequestConfig config = new DbxRequestConfig(

"JavaTutorial/1.0", Locale.getDefault().toString());

DbxWebAuthNoRedirect webAuth = new

DbxWebAuthNoRedirect(config, appInfo);

Ahora estamos listos para iniciar el flujo de OAuth. El flujo de OAuth tiene dos partes: 1. Preguntar al usuario para autorizar la vinculación de su aplicación a su cuenta de Dropbox. 2. Una vez autorizada, cambiar el código de autorización recibida para un token de acceso, que se utiliza para llamar a la API Core. Vamos a empezar con el objeto DbxWebAuthNoRedirect para generar una URL de autorización con el método de inicio. authorizeUrl = webAuth.start()

Con la autorización de URL en la mano, podemos pedir al usuario que autorice su

aplicación. Para evitar la molestia de instalar un servidor web en este tutorial, sólo

estamos imprimiendo la URL y pide al usuario que pulse la tecla para confirmar que

han autorizado su aplicación Intro. Sin embargo, en aplicaciones del mundo real, usted

desea enviar automáticamente al usuario a la URL de la autorización y pase una URL de

devolución de llamada para que el usuario se redirige a la perfección su aplicación

después de pulsar un botón.

Page 2: Uso de la API del núcleo de Java.pdf

// Have the user sign in and authorize your app.

String authorizeUrl = webAuth.start();

System.out.println("1. Go to: " + authorizeUrl);

System.out.println("2. Click "Allow" (you might have to log in

first)");

System.out.println("3. Copy the authorization code.");

String code = new BufferedReader(new

InputStreamReader(System.in)).readLine().trim();

Una vez que el usuario ha entregado el código de autorización de nuestra aplicación,

podemos intercambiar que codifican para una señal de acceso a través de acabado:

DbxAuthFinish authFinish = webAuth.finish(code);

El token de acceso es todo lo que necesita para hacer solicitudes de la API por parte de este usuario, por lo que debe almacenar lejos para su custodia (a pesar de que no lo hacemos en este tutorial). Al almacenar el token de acceso, usted no tendrá que ir a través de estos pasos de nuevo a menos que el usuario vuelve a instalar la aplicación o revoca el acceso a través del sitio web de Dropbox. Ahora que la parte más difícil se hace, todo lo que necesitamos hacer para autorizar a nuestras llamadas a la API es para pasar el testigo de acceso a DbxClient. Para probar que tenemos acceso a la API del núcleo, vamos a tratar de llamar getAccountInfo, que devolverá un diccionario con información sobre la cuenta vinculada del usuario:

DbxClient client = new DbxClient(config, authFinish.accessToken);

System.out.println("Linked account: " +

client.getAccountInfo().displayName);

Si has llegado hasta aquí, ahora tiene una aplicación simple que utiliza la API de Core para vincular a una cuenta de Dropbox y hacer una llamada a la API para recuperar información de la cuenta. A continuación, vamos a cargar un archivo en Dropbox, obtener sus metadatos, y luego bajamos de nuevo a nuestra aplicación.

Carga de archivos

Digamos que estamos construyendo una aplicación de edición de texto y queremos utilizarlo para guardar su último opus magnum de Dropbox. Vamos a navegar a los métodos de la documentación DbxClient para ver cuál va a hacer eso por nosotros. Esta página muestra todos los métodos admitidos en el SDK. Si se desplaza hacia abajo, usted encontrará UploadFile. UploadFile toma un camino que apunta hacia donde queremos que el archivo en nuestro Dropbox, y después un objeto o una cadena de tipo fichero a subir allí. Para este ejemplo, vamos a subir una copia local de trabajo-draft.txt:

File inputFile = new File("working-draft.txt");

FileInputStream inputStream = new FileInputStream(inputFile);

try {

DbxEntry.File uploadedFile = client.uploadFile("/magnum-opus.txt",

DbxWriteMode.add(), inputFile.length(), inputStream);

System.out.println("Uploaded: " + uploadedFile.toString());

} finally {

inputStream.close();

}

Page 3: Uso de la API del núcleo de Java.pdf

Si todo va bien, los datos de su trabajo-draft.txt locales estarán ahora en la raíz de la carpeta de aplicación (o la carpeta Dropbox, dependiendo del tipo de acceso de su aplicación). El archivo Subido variable contendrá los metadatos del archivo recién subido. Se verá algo como esto: File {

"/magnum-opus.txt"

iconName = "page_white_text"

mightHaveThumbnail = false

numBytes = 14

humanSize = "14 bytes"

lastModified = "2013/08/23 02:25:49 UTC"

clientMtime = "2013/08/23 02:25:49 UTC"

rev = "1312e120be"

}

Carpetas Listing

Si usted hojear las diferentes entradas de los metadatos anteriormente, obtendrá un buen sentido de toda la información que se desprende de los archivos. Usted puede obtener esta información de una carpeta completa mediante la llamada getMetadataWithChildren.

DbxEntry.WithChildren listing = client.getMetadataWithChildren("/");

System.out.println("Files in the root path:");

for (DbxEntry child : listing.children) {

System.out.println(" " + child.name + ": " +

child.toString());

}

El objeto devuelto será una lista de los archivos y carpetas en la ruta dada, incluidos sus metadatos. Enumeración ellos, verás algo como esto: Files in the root path:

magnum-opus.txt: File("/magnum-opus.txt",

iconName="page_white_text",

mightHaveThumbnail=false, numBytes=14, humanSize="14 bytes",

lastModified="2013/08/23 02:25:49 UTC",

clientMtime="2013/08/23 02:25:49 UTC",

rev="1312e120be")

En el ejemplo anterior, la carpeta raíz aplicación contiene el archivo que acaba de cargar

nombramos magnum-opus.txt. Verá varios bits de información como la ubicación

exacta del archivo, el tamaño del archivo, fecha de última modificación, y mucho más.

Descarga de archivos

Ha pasado algún tiempo y ya está listo para comenzar a editar esa obra magna de la

suya de nuevo. Necesitaremos el método getFile para descargar el archivo.

Page 4: Uso de la API del núcleo de Java.pdf

FileOutputStream outputStream = new FileOutputStream("magnum-

opus.txt");

try {

DbxEntry.File downloadedFile = client.getFile("/magnum-opus.txt",

null,

outputStream);

System.out.println("Metadata: " + downloadedFile.toString());

} finally {

outputStream.close();

}

Además de escribir el archivo en el flujo de salida, el método también devuelve los metadatos del archivo en su versión actual. Cada vez que se realiza un cambio en el archivo, el campo de revoluciones de los metadatos del archivo cambia también. Si guarda la revisión al descargar el archivo, podrás saber si el archivo ha sido modificado por otro equipo o dispositivo y optar por descargar la nueva revisión de ese archivo.

El código completo

Para aquellos que llevan la cuenta en casa, aquí está el código fuente completo de esta guía. Asegúrese de crear un archivo de trabajo-draft.txt para conseguir que funcione plenamente. Asimismo, recuerda que insertar su clave aplicación, app secreto, y el tipo de acceso.

// Include the Dropbox SDK.

import com.dropbox.core.*;

import java.io.*;

import java.util.Locale;

public class Main {

public static void main(String[] args) throws IOException,

DbxException {

// Get your app key and secret from the Dropbox developers

website.

final String APP_KEY = "INSERT_APP_KEY";

final String APP_SECRET = "INSERT_APP_SECRET";

DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET);

DbxRequestConfig config = new

DbxRequestConfig("JavaTutorial/1.0",

Locale.getDefault().toString());

DbxWebAuthNoRedirect webAuth = new

DbxWebAuthNoRedirect(config, appInfo);

// Have the user sign in and authorize your app.

String authorizeUrl = webAuth.start();

System.out.println("1. Go to: " + authorizeUrl);

System.out.println("2. Click "Allow" (you might have to log in

first)");

System.out.println("3. Copy the authorization code.");

Page 5: Uso de la API del núcleo de Java.pdf

String code = new BufferedReader(new

InputStreamReader(System.in)).readLine().trim();

// This will fail if the user enters an invalid authorization

code.

DbxAuthFinish authFinish = webAuth.finish(code);

DbxClient client = new DbxClient(config,

authFinish.accessToken);

System.out.println("Linked account: " +

client.getAccountInfo().displayName);

File inputFile = new File("working-draft.txt");

FileInputStream inputStream = new FileInputStream(inputFile);

try {

DbxEntry.File uploadedFile = client.uploadFile("/magnum-

opus.txt",

DbxWriteMode.add(), inputFile.length(), inputStream);

System.out.println("Uploaded: " +

uploadedFile.toString());

} finally {

inputStream.close();

}

DbxEntry.WithChildren listing =

client.getMetadataWithChildren("/");

System.out.println("Files in the root path:");

for (DbxEntry child : listing.children) {

System.out.println(" " + child.name + ": " +

child.toString());

}

FileOutputStream outputStream = new FileOutputStream("magnum-

opus.txt");

try {

DbxEntry.File downloadedFile = client.getFile("/magnum-

opus.txt", null,

outputStream);

System.out.println("Metadata: " +

downloadedFile.toString());

} finally {

outputStream.close();

}

}

}

Próximos pasos

Y con eso se debe estar equipado con casi todo lo que necesita para empezar a trabajar con la API de Core. Si usted aún no está seguro de algo, el foro de desarrolladores es un gran lugar para encontrar información y obtener ayuda de compañeros desarrolladores. ¡Buena suerte!