
Qui è sufficiente inserire il proprio nome utente e la password e consentire l'accesso al proprio Trello.
Volete accedere alle API Trello con gli script Python in modo rapido e senza la necessità di imparare le API Trello? Leggete questo tutorial e scoprite quanto è facile con Connect Bridge.
API Trello Python - Introduzione
A nessuno piace studiare ogni volta lunghe e complicate documentazioni sulle API quando è necessario accedervi. Questo articolo descrive come accedere all'API di Trello tramite script in linguaggio Python (provato nella versione 3.3) senza alcuna competenza specifica sull'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. I trasferimenti di dati avvengono 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:
- 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:
- Controllore di servizio CB – serve per l'avvio e l'arresto di Connect Bridge
- Strumento di amministrazione CB: qui è possibile configurare gli account per la connessione al sistema di destinazione.
- CB Query Analyzer: questo strumento serve per visualizzare lo schema del database del sistema di destinazione e consente di provare facilmente le query.
Creiamo quindi il tuo account per Trello. Apri lo Strumento di amministrazione e nella sezione Account crea un nuovo account, nella casella combinata Connettori seleziona CBTrelloConnector e fai clic su Procedura guidata di autenticazione.

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, basta cliccare con il tasto destro del mouse sulla connessione Trello e poi cliccare su “Modifica connessione”; nell'editor di connessione, selezionare 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 fetchone ha esito positivo e restituisce una riga di dati, stamperemo la riga di dati grezzi nell'output a scopo dimostrativo (... potrebbe essere qualsiasi tipo di output... potremmo formattarlo come xml o json, csv... o qualsiasi tipo di formato di scambio dati) o semplicemente utilizzare l'oggetto della riga di dati grezzi da utilizzare in un'ulteriore logica di codice per eseguire attività personalizzate.
Esecuzione dello script CBQuery.py
Ho testato il mio script utilizzando Windows PowerShell, ma è possibile eseguire qualsiasi altra shell si desideri utilizzare...
Sappiamo che il nostro CBQuery.py accetta due argomenti posizionali della riga di comando: “connstr” e “query”.
Possiamo vedere che lo schema contiene una “tabella” chiamata “list”, quindi possiamo costruire la nostra query come SELECT * FROM list LIMIT 10 per selezionare le prime 10 voci dall'elenco Trello e, eseguendo la query, come possiamo vedere nella nostra immagine qui sotto, la query ha restituito 10 righe nell'output.


Ora possiamo provare a creare una nuova scheda Trello nella prima lista ‘Blank’. Per farlo useremo la query:
INSERT INTO Card (nome, idlist) VALORI (‘Nuova carta’, ‘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 accedere 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 smettere di perdere tempo a studiare 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.