Conexión a la fuente de datos alojada en Dropbox

Un usuario Pregunto ✅

JuanSwid

Hola usuarios de PowerBI,

¿Alguien ha tenido suerte al conectarse a Dropbox como fuente de datos? No pude encontrar muchos artículos sobre este tema. Aquí hay un artículo que tenía una solución que no pudimos hacer funcionar: http://community.powerbi.com/t5/Desktop/Data-source-hosted-on-Dropbox/td-p/47882.

Sólo me preguntaba si alguien podría arrojar algo de luz sobre este tema. ¡Gracias!

Hola @JohnSwid,

¿Qué archivo o fuente de datos almacenas en Dropbox? Estoy tratando de conectarme a un archivo de Excel almacenado en DropBox siguiendo las sugerencias de ankitpatira y todo funciona bien.
1 PNG

Además, se han enviado algunas ideas sobre la conexión a la fuente de datos almacenada en Dropbox en los siguientes enlaces, vótelas. Es posible que se realicen algunos cambios para la conexión a Dropbox y podría ser más fácil para nosotros conectarnos a Dropbox desde el escritorio en el futuro.

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/6663925-dropbox
https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/9045649-please-add-more-data-serv…

Además, también puede considerar almacenar archivos en OneDrive en lugar de Dropbox y conectarse a ellos desde Power BI Desktop.

Gracias,
Lidia Zhang

mike_honey

En respuesta a v-yuezhe-msft

Mientras investigaba este tema, noté que todos los ejemplos dados parecen ser para la API de Dropbox v1, que ha quedado obsoleta y se desactivará en unos meses (junio de 2017):

https://blogs.dropbox.com/developers/2016/06/api-v1-deprecated/

La API v2 parece mucho más compleja: no parece haber ningún equivalente directo para el método sugerido anteriormente (llamada HTTPS única con una clave API). Los requisitos de autenticación ahora parecen más complejos:

https://www.dropbox.com/developers/reference/auth-types#user

Me ha dejado perplejo por ahora, ¿alguien lo ha hecho funcionar?

elliotdixon

En respuesta a mike_honey

Estoy de acuerdo con @mike_honey: parece que no puedo hacerlo funcionar.

Cualquier consejo sobre cómo conectarse a los archivos de Dropbox sería genial.

hugoberry

En respuesta a elliotdixon

La documentación en su sitio para desarrolladores es bastante completa https://www.dropbox.com/developers/documentation/http/documentation

En cuanto a algún código repetitivo para que pueda comenzar, eche un vistazo al fragmento a continuación para ver un ejemplo de cómo obtener una lista de carpetas.

let
    data = [    path= "/code",
                recursive=false,
                include_media_info=false,
                include_deleted=false,
                include_has_explicit_shared_members=false],
    header = [  #"Authorization"="Bearer ZZZZZZZZZZZ",
                #"Content-Type"= "application/json"],
    response = Web.Contents("https://api.dropboxapi.com/2/files/list_folder",[Content=Json.FromValue(data),Headers=header]),
    out = Json.Document(response,1252)
in
    out

La única configuración que tuve que hacer en el sitio de Dropbox fue crear una aplicación en el espacio del desarrollador y luego generar una clave de acceso, que por cierto es ZZZZZZZZZZ en mi fragmento.

masplin

En respuesta a hugoberry

Probé tu código y obtuve este error. Acabo de crear una aplicación y agregué el código de acceso donde tenías zzzzzzz.

DataSource.Error: Web.Contents no pudo obtener contenido de ‘https://api.dropboxapi.com/2/files/list_folder’ (400): solicitud incorrecta
Detalles:
DataSourceKind=Web
DataSourcePath=https://api.dropboxapi.com/2/files/list_folder
Url=https://api.dropboxapi.com/2/files/list_folder

¿Alguna idea de lo que esto significa?

gracias

Miguel

hugoberry

En respuesta a masplin

Creé un conector de datos de DropBox con el SDK de Power Query Extensions. Le invitamos a probarlo o comprobar el código para una posible respuesta
https://github.com/Hugoberry/PowerQueryConnectors/blob/master/src/DropBox/DropBox.pq

masplin

En respuesta a hugoberry

De hecho, logré configurar la nueva puerta de enlace personal para poder usar los archivos en Dropbox como fuente de datos para un archivo PBIX.

¿Creo que esto está haciendo algo diferente? ¿Podría explicar en qué casos buscaría usar esto para futuras referencias?

gracias

Miguel

ImkeF

En respuesta a masplin

Hola tios,

gracias por estas útiles soluciones diferentes! Recogí algunos bits de código de este hilo y creé una función que hace que sea bastante fácil obtener archivos de una carpeta de Dropbox: https://www.youtube.com/watch?v=eEVRO-Zc7pg

Esto debería ser útil para las personas que no son tan expertas en tecnología y podrían tropezarse con esta publicación.

masplin

En respuesta a ImkeF

hola imke

Me propuse seguir sus instrucciones para usar la carpeta de la aplicación en lugar de una carpeta normal de Dropbox, lo que parece ser casi imposible. De todos modos, creé mi aplicación y puse algunos archivos en la carpeta. Sin embargo, me quedé atascado de inmediato porque no puedes compartir una carpeta de aplicaciones. Tenemos varios usuarios que comparten nuestro buzón de BI y cualquiera de ellos podría estar agregando nuevos archivos a los fodlers cada mes. Entonces, si la carpeta de la aplicación no se puede compartir, ¿significa eso que la única forma de obtener nuevos datos en una carpeta de la aplicación es iniciar sesión en Dropbox como propietario de la aplicación? Simplemente parece un verdadero dolor si este es el caso, ya que de lo contrario su solución parece elegante.

Me doy cuenta de que esta es una pregunta de Dropbox, no de PowerBI, pero creo que podría saber si hay alguna forma de solucionarlo.

Gracias

Miguel

ImkeF

En respuesta a masplin

Hola Mike,

teniendo dificultades para seguirte aquí: ¿Qué quieres decir con «carpeta de la aplicación»?

Según tengo entendido, debe crear una aplicación en Dropbox para poder generar una clave API. Para el uso en PBI no necesita la aplicación de Dropbox explícitamente, solo la clave/token.

La carpeta que puede elegir es solo una carpeta «normal» en el buzón.

Pero podría estar totalmente equivocado aquí, en realidad no uso esto yo mismo.

masplin

En respuesta a ImkeF

En su publicación, colocó los archivos dentro de la carpeta de la aplicación, por lo que asumió que tenía que hacer eso. Iré y probaré con una carpeta de Dropbox normal. e informar de nuevo

masplin

En respuesta a masplin

Ok, usé tu código y el token que obtuve para todo mi Dropbox. Si no pongo la ruta de la carpeta, obtengo algo

Captura.PNG

Sin embargo, necesito una carpeta que esté varias capas debajo de Datamodel/3rd party Bookings/WCFMC

Si pongo algo en la carpeta, se produce un error.

Captura.PNG

Ocurrió un error en la consulta ‘Query1’. DataSource.Error: Web.Contents no pudo obtener contenido de ‘https://api.dropboxapi.com/2/files/list_folder’ (400): solicitud incorrecta
Detalles:
DataSourceKind=Web
DataSourcePath=https://api.dropboxapi.com/2/files/list_folder
Url=https://api.dropboxapi.com/2/files/list_folder

¿Alguna idea de cómo hacer que lea el contenido de las subcarpetas?

gracias

Miguel

ImkeF

En respuesta a masplin

La carpeta debe comenzar con una barra inclinada:

DropboxSubcarpetas.jpg

ver aquí: http://www.thebiccountant.com/2017/06/25/import-multiple-files-dropbox-folder-powerbi-excel-via-powe…

masplin

En respuesta a ImkeF

Ah perfecto. parece que funciona. Fantástico.

eres el mejor

Miguel

masplin

En respuesta a masplin

Lamentablemente el cartel anterior es correcto. su método funciona dentro de Excel y PowerQuery, pero no puede usar esa misma consulta en PDI Desktop ya que falla en la puerta de enlace

Captura.PNG

Eso es realmente molesto.

Miguel

ImkeF

En respuesta a masplin

¿En serio? ¡Eso es un dolor!

En realidad, no tengo una puerta de enlace en mi máquina local, por lo que eso podría explicar por qué todavía funciona para mí.

@JAkerblom: ¿Y tú? ¿Tampoco tienes una puerta de enlace instalada?

jakerblom

En respuesta a ImkeF

@ImkeF, no, no tengo una puerta de enlace instalada. No entendí por qué necesitaría uno para hacer una llamada API específica.

Ahora veo que la gente necesita enumere específicamente el contenido de la carpeta y no solo busque un archivo específico, que es lo que hice. Primero pensé que era el método api el que no podía proporcionar los resultados de la lista de contenido de la carpeta, pero cuando traté de hacer una llamada curl de línea de comando funcionó bien, es decir, el método list_folder puede devolver la lista de contenido de la carpeta (pero simplemente no en PowerBI Desktop por alguna razón…). Probé todos los tipos de parámetros de encabezado en el método web.contents para que funcionara, pero no tuve éxito. O lo estoy haciendo mal o simplemente no es posible. Pero sería realmente extraño si ciertas llamadas a la API no funcionaran.

masplin

En respuesta a ImkeF

Creo que este es el mejor para que votemos.

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/6663925-dropbox

masplin

En respuesta a masplin

Ok, plan B. El método listo para usar en Power Query para consultar una carpeta es crear este gran lío con archivos de muestra que es tremendamente confuso. ¿Hay alguna manera de tener una sola consulta que haga el trabajo?

Por ejemplo, quiero consultar estos 2 archivos en una carpeta de Dropbox. El primer paso veo esto

Captura.PNG

Sin embargo, si hago clic en las flechas en el binario, se activa el archivo de muestra.

Captura.PNG

¿Puedo solucionar esto con algún código similar al que escribió Imke para Dropbox? Supongo que es un ejercicio similar, pero mi M es demasiado pobre para resolverlo. 😞

Miguel

masplin

En respuesta a masplin

Lo encontré 🙂

https://www.myexcelonline.com/blog/consolidate-multiple-excel-workbooks-using-power-query/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *