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 x64Che 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:
- Installare Connect Bridge (è possibile ottenere prova gratuita qui)
- Installare Pitone per finestre ver. 3.3+
- Installare modulo pyodbc 3.0.7+ (ho usato il pyodbc-3.0.7.win-amd64-py3.3.exe)
- Per facilitare la scrittura, l'esecuzione e il debug dei miei script, ho utilizzato Eclipse Luna con pydev plugin
- 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.
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.
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)
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.
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')
Potete vedere in Trello che la nuova carta è stata creata con successo
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
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.