Pitone trello

Accedere alle API Trello utilizzando script Python con Connect Bridge

Georgii KapanadzeTechnical 1 Comment

trello con il software di collegamento

Qui è sufficiente inserire il proprio nome utente e la password e consentire l'accesso al proprio Trello.

Volete accedere alle API di Trello con script Python in modo rapido e senza dover imparare le API di Trello? Leggete questo tutorial e scoprite com'è facile con Connect Bridge.

API Trello Python - Introduzione

A nessuno piace imparare una documentazione lunga e complicata per le API ogni volta che è necessario accedervi. Questo articolo descrive come accedere alle API di Trello tramite script in linguaggio Python (ho provato con la versione 3.3) senza alcuna esperienza nelle API di Trello. Per questo tutorial è necessaria la piattaforma di integrazione Connect Bridge per consentire la comunicazione dei dati tramite l'API di Trello utilizzando principalmente semplici istruzioni SQL. Il trasferimento dei dati avviene tramite il livello ODBC. Ho ottenuto questo risultato in Python utilizzando il modulo pyodbc ver. 3.0.7 x64

Che cos'è "Connect Bridge"?

Connect Bridge è una piattaforma di integrazione che permette di collegare qualsiasi software attraverso ODBC, driver JDBC e Web Services con più di 31 connettori (incluso Trello). Gli sviluppatori possono accedere a questi connettori in qualsiasi linguaggio di programmazione senza la necessità di avere una competenza nel sistema di destinazione, fondamentalmente in pochi minuti. Il fatto è che è possibile utilizzare lo strumento per accedere non solo alle API Trello via Python, ma anche per prelevare/pubblicare dati da/verso MS Exchange, MS Dynamics CRM, MS SharePoint e molti altri sistemi.

Prerequisiti

Ora passiamo al processo di sviluppo di un semplice script Python che accede alle API Trello utilizzando Connect Bridge tramite un driver ODBC in diversi semplici passi:

  1. Installare Connect Bridge (è possibile ottenere prova gratuita qui)
  2. Installare Pitone per finestre ver. 3.3+
  3. Installare modulo pyodbc 3.0.7+ (ho usato il pyodbc-3.0.7.win-amd64-py3.3.exe)
  4. Per facilitare la scrittura, l'esecuzione e il debug dei miei script, ho utilizzato Eclipse Luna con pydev plugin
  5. Conto di setup per Trello in Connect Bridge (vedi paragrafo sotto)

Configurazione Connect Bridge

Dopo l'installazione di Connect Bridge, si possono vedere tre applicazioni:

  • CB Service Controller - serve per l'avvio e l'arresto di Connect Bridge
  • CB Administration Tool - qui potete impostare i vostri account per il collegamento al sistema di destinazione
  • CB Query Analyzer - questo strumento serve per la visualizzazione del database del sistema di destinazione Schema e potete provare qui le vostre query facilmente

Quindi creiamo il tuo account per Trello. Aprite Administration Tool e nella sezione Account create un nuovo account, nella combobox dei connettori selezionate CBTrelloConnector e cliccate su Authentication Wizard.

Accedere a trello con il software di connessione

Poi basta salvarlo e abbiamo il nostro conto.
Ora possiamo usare lo strumento CB Query Analyzer per visualizzare lo schema. Dobbiamo aggiungere una nuova connessione come descritto nell'immagine sottostante.

trello con il software di collegamentotrello con il software di collegamento

Per la connessione da script python avremo bisogno di una stringa di connessione a questo account.

Per conoscere la nostra stringa di connessione possiamo semplicemente cliccare con il tasto destro del mouse sulla connessione Trello e poi cliccare su "Modifica connessione", nell'editor di connessione scegliere la scheda "Avanzate" e copiare il valore dalla casella di testo "Stringa di connessione". (Vedi immagini sotto)

trello con il software di collegamentotrello con il software di collegamento

Mani sullo scripting!

Il nucleo e allo stesso tempo l'unico file della mia soluzione è CBQuery.py. Trovate il codice sorgente qui sotto.

 #!/usr/local/bin/python2.7
# codifica: utf-8
'''
CBQuery2 -- interrogare dati da, scrivere dati su SharePoint, Dynamics CRM, Exchange
CBQuery2 è uno script che consente di eseguire query SQL tramite il driver ODBC Connect Bridge.

@autore:     Michal Hainc
@copyright: 2014
@licenza:    Apache 2.0

@contatto: michalhainc@gmail.com
@deffield aggiornato: 18.8.2014
'''

importare sys
importare os
importare pyodbc

da argparse import ArgumentParser
da argparse import RawDescriptionHelpFormatter

__all__ = []
__version__ = 0.1
__date__ = '2014-08-15'
__updated__ = '2014-08-15'

DEBUG = 1
TESTRUN = 0
PROFILO = 0

classe CLIError(Exception):
    '''Eccezione generica per sollevare e registrare diversi errori fatali'''.
    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=Nessuno): # IGNORE:C0111
    '''Opzioni della riga di comando'''.

    se argv è None:
        argv = sys.argv
    altrimenti:
        sys.argv.extend(argv)

    nome_programma = os.path.basename(sys.argv[0])
    program_version = "v%s" % __version__
    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]
    licenza_del_programma = '''%s

  Creato da Michal Hainc su %s.

  Licenziato sotto la Licenza Apache 2.0.
  http://www.apache.org/licenses/LICENSE-2.0

  Distribuito "COSÌ COM'È", senza garanzie
  o condizioni di alcun tipo, sia espresse che implicite.

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

    prova:
        # Impostare il parser degli argomenti
        parser = ArgumentParser(description=programma_licenza, formatter_class=RawDescriptionHelpFormatter)
        parser.add_argument('connstr')
        parser.add_argument('query')
        
        # Elaborare gli argomenti
        args = parser.parse_args()

        query = args.query
        connstr = args.connstr

        conn = pyodbc.connect(connstr)
        cursore = conn.cursor()
        cursor.execute(query)
        mentre 1:
            riga = Nessuno
            try:
                row = cursor.fetchone()
            eccezione:
                print(sys.exc_info()[1])
                pausa
            se non riga:
                break
            stampa(riga)
                        
            
    eccezione KeyboardInterrupt:
        ### gestire l'interrupt della tastiera ###
        restituire 0
    eccezione:
        print(sys.exc_info()[1])
        #indent = len(nome_programma) * " "
        #sys.stderr.write(nome_programma + ": " + repr(e) + "n")
        #sys.stderr.write(indent + " per aiuto usare --help")
        ritorno 2

if __name__ == "__main__":
         
    if TESTRUN:
        importare doctest
        doctest.testmod()
    se PROFILO:
        importare cProfile
        importare pstats
        nome_profilo = 'CBQuery2_profilo.txt'
        cProfile.run('main()', nome_profilo)
        statsfile = open("profile_stats.txt", "wb")
        p = pstats.Stats(nome_profilo, stream=statsfile)
        stats = p.strip_dirs().sort_stats('cumulative')
        stats.print_stats()
        statsfile.close()
        sys.exit(0)
    sys.exit(main())
  • connstr (Connection string) contiene la stringa di connessione ODBC che passiamo nel modulo pyodbc per creare una connessione ODBC memorizzata nella variabile conn
  • come passo successivo apriamo un cursore di database utilizzando la connessione memorizzata in conn
  • poi eseguiamo la query SQL passata attraverso il parametro della riga di comando denominato query
  • come ultima cosa usiamo un while loop per leggere i risultati del cursore riga per riga, quando il cursore.fetchone ritorna Nessuno, rompiamo il loop
  • se si verifica un'eccezione durante il fetch ODBC, rompiamo anche il loop e stampiamo il problema in uscita
  • se il metodo del fetchone procede e restituisce una riga di dati, stamperemo la riga di dati grezzi all'output a scopo dimostrativo (... potrebbe essere qualsiasi tipo di output... potremmo formattare come xml o json, csv... o qualsiasi tipo di formato di scambio di dati) o semplicemente usare l'oggetto riga di dati grezzi da usare in ulteriore logica di codice per eseguire compiti personalizzati

Esecuzione dello script CBQuery.py

Ho testato il mio script utilizzando il PowerShell di Windows, ma è possibile eseguire qualsiasi altra shell...

Sappiamo che il nostro CBQuery.py accetta due argomenti a riga di comando posizionale, il "connstr" e la "query".

Possiamo vedere che lo schema contiene una "tabella" chiamata "list" e quindi possiamo costruire la nostra query come SELECT * FROM list LIMIT 10 per selezionare le prime 10 voci dall'elenco di Trello; eseguendo la query, come possiamo vedere nell'immagine sottostante, la query ha restituito 10 righe nell'output.

trello con il software di collegamentotrello con il software di collegamento

Ora possiamo provare a creare una nuova Trello Card nella prima lista 'Blank'. La useremo per la query:

INSERIRE NELLA TESSERA (nome, idlist) VALORI ('Nuova tessera', '565c0d32c75039b07e86b0b3')

trello con il software di collegamento

Potete vedere in Trello che la nuova carta è stata creata con successo

trello con il software di collegamento

Vincoli

Finora sono stato in grado di utilizzare lo strumento Connect Bridge solo da sistemi operativi Windows, a causa del fatto che Connecting Software non ha fornito alcuna libreria client ODBC Linux (se questo è possibile). Quindi assicuratevi di giocare con i vostri script Python su una macchina Windows.

Conclusione

Abbiamo dimostrato che l'accesso all'API di Trello in Python può essere davvero facile utilizzando lo strumento di integrazione Connect Bridge. E Trello è solo uno dei tanti sistemi che Connect Bridge rende possibile integrare. Immaginate di poter accedere in modo sicuro alle API dei principali software e servizi come Dynamics CRM, NAV, AX, Salesforce, Exchange e molti altri. Se siete interessati a non perdere tempo a imparare centinaia di pagine di documentazione API ogni volta che vi imbattete in un nuovo sistema di destinazione, Chiedi una prova gratuita, i prezzi ed eventuali domande aggiuntive.

Salute,
Ondrej

Comments 1

  1. Avatar per Soha Zain

    Incredibilmente ottimo lavoro. Questi due punti sono ben coperti; "Connect Bridge setup " e " Constraints". Grazie per aver condiviso questo argomento "Accesso alle API Trello utilizzando script Python con Connect Bridge". La parte migliore è che l'articolo ha tutti i dettagli pratici! Continuate a condividere.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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