
Il vous suffit de remplir votre nom d'utilisateur et votre mot de passe et de permettre l'accès à votre Trello.
Vous souhaitez accéder à Trello API avec des scripts Python rapidement et sans avoir à apprendre Trello API ? Lisez ce tutoriel et découvrez à quel point il est facile avec Connect Bridge.
Trello API Python - Introduction
Personne n'aime apprendre une documentation longue et compliquée sur les API chaque fois qu'il est nécessaire d'y accéder. Cet article décrit comment accéder à l'API de Trello via des scripts en langage Python (j'ai essayé dans la version 3.3) sans aucune expertise dans l'API de Trello. Pour ce tutoriel, vous aurez besoin de la plateforme d'intégration Connect Bridge pour permettre la communication de données via l'API Trello en utilisant principalement de simples instructions SQL. Les transferts de données sont effectués via la couche ODBC. J'ai réalisé cela en Python en utilisant le module pyodbc ver. 3.0.7 x64Qu'est-ce que le “Connect Bridge” ?
Connect Bridge est une plateforme d'intégration qui permet de connecter n'importe quel logiciel via ODBC, les pilotes JDBC et les services Web avec plus de 31 connecteurs (dont Trello). Les développeurs peuvent accéder à ces connecteurs dans n'importe quel langage de programmation sans avoir besoin d'une expertise du système cible, en quelques minutes seulement. Le fait est que vous pouvez utiliser l'outil pour accéder non seulement à l'API Trello via Python, mais aussi saisir/enregistrer des données depuis/vers MS Exchange, MS Dynamics CRM, MS SharePoint et bien d'autres systèmes.Conditions préalables
Passons maintenant au processus de développement d'un simple script Python qui accède à l'API Trello en utilisant Connect Bridge via un pilote ODBC en plusieurs étapes simples :
- Installez Connect Bridge (vous pouvez obtenir Essai gratuit ici)
- Installez Python pour Windows ver. 3.3+
- Installez module pyodbc 3.0.7+ (j'ai utilisé le pyodbc-3.0.7.win-amd64-py3.3.exe)
- Afin de faciliter l'écriture, l'exécution et le débogage de mes scripts, j'ai utilisé Eclipse Luna avec pydev plugin
- Créer un compte pour Trello dans Connect Bridge (voir paragraphe ci-dessous)
Configuration du Connect Bridge
Après l'installation de Connect Bridge, vous pouvez voir trois applications :
- Contrôleur de service CB - sert au démarrage et à l'arrêt du Connect Bridge
- Outil d'administration CB - vous pouvez ici configurer vos comptes pour la connexion au système cible.
- CB Query Analyzer - cet outil permet de visualiser le schéma de la base de données du système cible et de tester facilement vos requêtes.
Créons donc votre compte pour Trello. Ouvrez l'outil d'administration et dans la section Comptes, créez un nouveau compte, dans la boîte combobox des connecteurs, sélectionnez CBTrelloConnector et cliquez sur l'assistant d'authentification.

Il suffit ensuite de le sauvegarder et nous avons notre compte.
Nous pouvons maintenant utiliser l'outil CB Query Analyzer pour visualiser le schéma. Nous devons ajouter une nouvelle connexion comme décrit dans l'image ci-dessous.


Pour la connexion à partir du script python, nous aurons besoin d'une chaîne de connexion à ce compte.
Pour connaître notre chaîne de connexion, il suffit de cliquer avec le bouton droit de la souris sur la connexion Trello, puis de cliquer sur “Modifier la connexion”. Dans l'éditeur de connexion, choisissez l'onglet “Avancé” et copiez la valeur de la zone de texte “Chaîne de connexion”. (Voir les images ci-dessous)


Les mains sur le script !
Le noyau et en même temps le seul fichier de ma solution est CBQuery.py. Veuillez trouver le code source ci-dessous.
#!/usr/local/bin/python2.7
# encodage : utf-8
'''
CBQuery2 -- interroger des données depuis, écrire des données vers SharePoint, Dynamics CRM, Exchange
CBQuery2 est un script qui permet d'exécuter des requêtes SQL via le pilote ODBC Connect Bridge.
@auteur : Michal Hainc
@copyright : 2014
@licence : Apache 2.0
Contact : michalhainc@gmail.com
@deffield mis à jour : 18.8.2014
'''
import sys
import os
import pyodbc
from argparse import ArgumentParser
from argparse import RawDescriptionHelpFormatter
__all__ = []
__version__ = 0.1
__date__ = '2014-08-15
__updated__ = '2014-08-15' (en anglais)
DEBUG = 1
TESTRUN = 0
PROFILE = 0
class CLIError(Exception) :
'''Exception générique pour lever et enregistrer différentes erreurs 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=None) : # IGNORE:C0111
'''Options de la ligne de commande'''.
si argv est None :
argv = sys.argv
else :
sys.argv.extend(argv)
nom_du_programme = os.path.basename(sys.argv[0])
version_du_programme = "v%s" % __version__
date_de_construction du programme = str(__updated__)
program_version_message = '%%(prog)s %s (%s)' % (program_version, program_build_date)
program_shortdesc = __import__('__main__').__doc__.split("n")[1]
licence du programme = '''%s
Créé par Michal Hainc sur %s.
Sous licence Apache 2.0
http://www.apache.org/licenses/LICENSE-2.0
Distribué "TEL QUEL" sans garantie ni condition d'aucune sorte, explicite ou implicite.
ou conditions d'aucune sorte, qu'elles soient explicites ou implicites.
USAGE
''' % (program_shortdesc, str(__date__))
essayer :
# Configuration de l'analyseur d'arguments
parser = ArgumentParser(description=programme_license, formatter_class=RawDescriptionHelpFormatter)
parser.add_argument('connstr')
parser.add_argument('query')
# Arguments du processus
args = parser.parse_args()
query = args.query
connstr = args.connstr
conn = pyodbc.connect(connstr)
cursor = conn.cursor()
cursor.execute(query)
while 1 :
row = None
essayer :
row = cursor.fetchone()
except :
print(sys.exc_info()[1])
break
if not row :
rupture
print(row)
except KeyboardInterrupt :
### gère l'interruption du clavier ###
Retourner 0
except :
print(sys.exc_info()[1])
#indent = len(nom_programme) * " "
#sys.stderr.write(nom_du_programme + " : " + repr(e) + "n")
#sys.stderr.write(indent + " for help use --help")
retour 2
si __name__ == "__main__" :
si TESTRUN :
importe doctest
doctest.testmod()
si PROFILE :
importe cProfile
importe pstats
nom_de_profil = 'CBQuery2_profile.txt'.
cProfile.run('main()', profile_filename)
statsfile = open("profile_stats.txt", "wb")
p = pstats.Stats(nom_du_profil, stream=statsfile)
stats = p.strip_dirs().sort_stats('cumulative')
stats.print_stats()
statsfile.close()
sys.exit(0)
sys.exit(main())
- connstr (Connection string) contient la chaîne de connexion ODBC que l'on passe dans le module pyodbc pour créer une connexion ODBC stockée dans la variable conn
- l'étape suivante consiste à ouvrir un curseur dans la base de données en utilisant la connexion stockée dans conn
- puis nous exécutons la requête SQL passée via le paramètre de ligne de commande nommé query
- comme précédemment, nous utilisons une boucle de temps pour lire les résultats du curseur ligne par ligne, lorsque le curseur.fetchone renvoie Aucun, nous interrompons la boucle
- si une exception se produit lors de la recherche ODBC, nous interrompons également la boucle et imprimons le problème en sortie
- si la méthode fetchone réussit et renvoie une ligne de données, nous imprimerons la ligne de données brutes en sortie à des fins de démonstration (... il pourrait s'agir de n'importe quel type de sortie... nous pourrions formater en xml ou json, csv... ou tout autre format d'échange de données) ou nous utiliserons simplement l'objet ligne de données brutes pour l'utiliser dans une logique de code ultérieure afin d'effectuer des tâches personnalisées.
Exécution du script CBQuery.py
J'ai testé mon script en utilisant le PowerShell de Windows, mais vous pouvez utiliser n'importe quel autre shell...
Nous savons que notre CBQuery.py accepte deux arguments de ligne de commande positionnels, “connstr” et “query”.
Nous pouvons voir que le schéma contient une “table” appelée “list”, nous pouvons donc construire notre requête comme SELECT * FROM list LIMIT 10 pour sélectionner les 10 premières entrées de la liste Trello, et en exécutant la requête comme nous pouvons le voir sur notre image ci-dessous que la requête a retourné 10 lignes dans la sortie.


Nous pouvons maintenant essayer de créer une nouvelle carte Trello dans la première liste ‘vierge’. Nous utiliserons pour cela une requête :
INSERT INTO Card (name, idlist) VALUES (‘Nouvelle carte’, ‘565c0d32c75039b07e86b0b3’)

Vous pouvez voir dans Trello que la nouvelle carte a été créée avec succès

Contraintes
Jusqu'à présent, je n'ai pu utiliser l'outil Connect Bridge qu'à partir des systèmes d'exploitation Windows, car Connecting Software ne fournissait aucune bibliothèque client ODBC Linux (si cela est possible). Assurez-vous donc de jouer avec vos scripts Python sur une machine Windows.
Conclusion
Nous avons prouvé que l'accès à l'API Trello en Python peut être très facile grâce à l'outil d'intégration Connect Bridge. Et Trello n'est qu'un système parmi tant d'autres que Connect Bridge permet d'intégrer. Imaginez que vous puissiez accéder en toute sécurité aux API des principaux logiciels et services tels que Dynamics CRM, NAV, AX, Salesforce, Exchange et bien d'autres encore. Si vous souhaitez arrêter de perdre votre temps à apprendre des centaines de pages de documentation sur les API à chaque fois que vous rencontrez un nouveau système cible, demander un essai gratuit, les prix et toute autre question.
A la vôtre,
Ondrej

Comments 1
Un travail extraordinaire. Ces deux points sont bien couverts ; "Configuration du Connect Bridge" et "Contraintes". Merci de partager ce sujet "Accéder à l'API Trello en utilisant des scripts Python avec Connect Bridge". La meilleure partie est que l'article contient tous les détails pratiques ! Continuez à partager.