Python trello

Acceder a la API de Trello usando scripts Python con Connect Bridge

Georgii KapanadzeTechnical 1 Comment

trello con software de conexión

Allí sólo tienes que rellenar tu nombre de usuario y contraseña y permitir el acceso a tu Trello.

¿Quieres acceder a la API de Trello con scripts de Python rápidamente y sin necesidad de aprender la API de Trello? Lee este tutorial y aprende lo fácil que es con Connect Bridge.

Trello API Python - Introducción

A nadie le gusta aprenderse la larga y complicada documentación de las APIs cada vez que se necesita acceder a ellas. Este artículo describe cómo acceder a la API de Trello a través de scripts en lenguaje Python (he probado en la versión 3.3) sin necesidad de tener conocimientos sobre la API de Trello. Para este tutorial necesitarás la plataforma de integración Connect Bridge para permitir la comunicación de datos a través de la API de Trello utilizando principalmente sentencias SQL simples. Las transferencias de datos se realizan a través de la capa ODBC. He logrado esto en Python utilizando el módulo pyodbc ver. 3.0.7 x64

¿Qué es "Connect Bridge"?

Connect Bridge es una plataforma de integración que permite conectar cualquier software a través de ODBC, drivers JDBC y Servicios Web con más de 31 conectores (incluyendo Trello). Los desarrolladores pueden acceder a estos conectores en cualquier lenguaje de programación sin necesidad de tener conocimientos del sistema de destino, básicamente en cuestión de minutos. El caso es que se puede utilizar la herramienta para acceder no sólo a la API de Trello a través de Python, sino que también se pueden capturar/poner datos desde/a MS Exchange, MS Dynamics CRM, MS SharePoint y muchos sistemas más.

Requisitos previos

Ahora vamos a pasar por el proceso de desarrollo de un simple script Python que accede a la API de Trello usando Connect Bridge a través de un controlador ODBC en varios pasos sencillos:

  1. Instale Connect Bridge (puede obtener prueba gratuita aquí)
  2. Instalar Python para Windows ver. 3.3+
  3. Instalar módulo pyodbc 3.0.7+ (He usado el pyodbc-3.0.7.win-amd64-py3.3.exe)
  4. Para facilitar la escritura, ejecución y depuración de mis guiones, he usado Eclipse Luna con pydev plugin
  5. Cuenta de configuración para Trello en Connect Bridge (véase el párrafo siguiente)

Configuración de Connect Bridge

Después de la instalación de Connect Bridge, se pueden ver tres aplicaciones:

  • Controlador de Servicio CB - sirve para el arranque y la parada del Connect Bridge
  • Herramienta de administración de CB - aquí puede configurar sus cuentas para la conexión al sistema de destino
  • CB Query Analyzer - esta herramienta sirve para la visualización de la base de datos del sistema de destino Esquema y puede probar aquí sus consultas fácilmente

Así que vamos a crear tu cuenta para Trello. Abre la Herramienta de Administración y en la sección de Cuentas crea una nueva cuenta, en el combobox de conectores selecciona CBTrelloConnector y haz clic en el Asistente de Autenticación.

Iniciar sesión en trello con el software de conexión

Entonces sólo guárdalo y tendremos nuestra cuenta.
Ahora podemos usar la herramienta CB Query Analyzer para visualizar el esquema. Necesitamos añadir una nueva conexión como se describe en la imagen de abajo.

trello con software de conexióntrello con software de conexión

Para la conexión desde el script python necesitaremos una cadena de conexión a esta cuenta.

Para conocer nuestra cadena de conexión podemos hacer clic con el botón derecho del ratón en la conexión de Trello y luego hacer clic en "Editar conexión", en el editor de conexión elegir la pestaña "Avanzado" y copiar el valor de la caja de texto "Cadena de conexión". (Ver imágenes abajo)

trello con software de conexióntrello con software de conexión

¡Manos a la obra!

El núcleo y al mismo tiempo el único archivo de mi solución es CBQuery.py. Por favor, encuentra el código fuente abajo.

 #!/usr/local/bin/python2.7
# codificación: utf-8
'''
CBQuery2 -- consultar datos desde, escribir datos en SharePoint, Dynamics CRM, Exchange
CBQuery2 es un script que permite ejecutar consultas SQL a través del driver ODBC Connect Bridge

@autor:     Michal Hainc
@copyright: 2014
@licencia:    Apache 2.0

@contacto: michalhainc@gmail.com
@deffield actualizado: 18.8.2014
'''

importar sys
importar os
importar pyodbc

from argparse import ArgumentParser
from argparse import RawDescriptionHelpFormatter

__all__ = []
__versión__ = 0.1
__date__ = '2014-08-15'
__updated__ = '2014-08-15'

DEBUG = 1
TESTRUN = 0
PERFIL = 0

clase CLIError(Exception):
    '''Excepción genérica para lanzar y registrar diferentes errores fatales'''.
    def __init__(self, msg):
        super(CLIError).__init__(type(self))
        self.msg = "E: %s" % msg
    def __str__(self):
        return self.msg
    def __unicode__(self):
        return self.msg

def main(argv=Ninguna): # IGNORE:C0111
    '''Opciones de la línea de comandos.'''

    si argv es None
        argv = sys.argv
    si no:
        sys.argv.extend(argv)

    nombre_del_programa = os.path.basename(sys.argv[0])
    versión_del_programa = "v%s" % __versión__
    program_build_date = str(__updated__)
    program_version_message = '%%(prog)s %s (%s)' % (program_version, program_build_date)
    program_shortdesc = __import__('__main__').__doc__.split("n")[1]
    programa_licencia = '''%s

  Creado por Michal Hainc en %s.

  Licenciado bajo la Licencia Apache 2.0
  http://www.apache.org/licenses/LICENSE-2.0

  Distribuido "tal cual", sin garantías ni condiciones de ningún tipo, ni expresas ni implícitas.
  o condiciones de ningún tipo, ni expresas ni implícitas.

USO
''' % (program_shortdesc, str(__date__))

    intentar:
        # Configurar el analizador de argumentos
        parser = ArgumentParser(description=programa_licencia, formatter_class=RawDescriptionHelpFormatter)
        parser.add_argument('connstr')
        parser.add_argument('query')
        
        # Procesar los argumentos
        args = parser.parse_args()

        query = args.query
        connstr = args.connstr

        conn = pyodbc.connect(connstr)
        cursor = conn.cursor()
        cursor.execute(query)
        mientras 1:
            row = None
            intenta:
                row = cursor.fetchone()
            excepto:
                print(sys.exc_info()[1])
                break
            si no es fila:
                break
            print(fila)
                        
            
    excepto KeyboardInterrupt:
        ### manejar la interrupción del teclado ###
        devuelve 0
    excepto:
        print(sys.exc_info()[1])
        #indent = len(nombre_programa) * " "
        #sys.stderr.write(nombre_programa + ": " + repr(e) + "n")
        #sys.stderr.write(indent + " para ayuda usa --help")
        retornar 2

si __name__ == "__main__":
         
    si TESTRUN:
        import doctest
        doctest.testmod()
    si PROFILE:
        import cProfile
        importar pstats
        nombre_perfil = 'CBQuery2_profile.txt'
        cProfile.run('main()', nombre_perfil)
        statsfile = open("perfil_estadisticas.txt", "wb")
        p = pstats.Stats(nombre_perfil, stream=fichero_de_estadística)
        stats = p.strip_dirs().sort_stats('cumulative')
        stats.print_stats()
        statsfile.close()
        sys.exit(0)
    sys.exit(main())
  • connstr (Connection string) contiene la cadena de conexión ODBC que pasamos al módulo pyodbc para crear una conexión ODBC almacenada en la variable conn.
  • como siguiente paso abrimos un cursor de la base de datos usando la conexión almacenada en Conn
  • entonces ejecutamos la consulta SQL pasada a través del parámetro de línea de comandos llamado consulta
  • como última vez que usamos un bucle while para leer los resultados del cursor fila por fila, cuando el cursor.fetchone devuelve None, rompemos el bucle
  • si se produce una excepción durante la obtención del ODBC, también rompemos el bucle e imprimimos el problema a la salida
  • si el método fetchone tiene éxito y devuelve una fila de datos, imprimiremos la fila de datos en bruto a la salida con fines de demostración (... podría ser cualquier tipo de salida... podríamos formatear como xml o json, csv... o cualquier tipo de formato de intercambio de datos) o simplemente utilizar el objeto de la fila de datos en bruto para ser usado en una lógica de código posterior para realizar tareas personalizadas

Ejecutando el script CBQuery.py

He probado mi script usando Windows PowerShell, pero puedes ejecutar cualquier otro shell que quieras usar...

Sabemos que nuestro CBQuery.py acepta dos argumentos de línea de comando posicional el "connstr" y el "query".

Podemos ver que el esquema contiene una "tabla" llamada "lista" por lo que podemos construir nuestra consulta como SELECT * FROM lista LIMIT 10 para seleccionar las 10 primeras entradas de la lista de Trello, y al ejecutar la consulta como podemos ver en nuestra imagen de abajo que la consulta devuelve 10 filas en la salida.

trello con software de conexióntrello con software de conexión

Ahora podemos intentar crear una nueva Tarjeta Trello en la primera lista de "Blancos". La usaremos para la consulta:

INSERTAR EN LA TARJETA (nombre, lista de identificación) VALORES ('Nueva tarjeta', '565c0d32c75039b07e86b0b3')

trello con software de conexión

Puedes ver en Trello que la nueva tarjeta ha sido creada con éxito

trello con software de conexión

Restricciones

Hasta ahora he podido usar la herramienta Connect Bridge sólo desde sistemas operativos Windows, debido a que el Connecting Software no proporcionaba ninguna biblioteca de clientes ODBC Linux (si es que eso es posible). Así que asegúrate de jugar con tus scripts Python en una máquina Windows.

Conclusión

Hemos demostrado que acceder a la API de Trello en Python puede ser realmente fácil utilizando la herramienta de integración Connect Bridge. Y Trello es sólo un sistema de los muchos que Connect Bridge hace posible integrar. Imagina que puedes acceder de forma segura a las API de los principales programas y servicios como Dynamics CRM, NAV, AX, Salesforce, Exchange y muchos más. Si está interesado en dejar de perder su tiempo aprendiendo cientos de páginas de documentación de API cada vez que se encuentra con un nuevo sistema de destino, pedir una prueba gratuita, precios y cualquier pregunta adicional.

Salud,
Ondrej

Comments 1

  1. Avatar de Soha Zain

    Un trabajo increíblemente bueno. Estos dos puntos están bien cubiertos; "Configuración Connect Bridge" y "Restricciones". Gracias por compartir este tema "Acceder a la API de Trello usando scripts Python con Connect Bridge". La mejor parte es que el artículo tiene todos los detalles prácticos! Sigue compartiendo.

Deja una respuesta

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

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.