Python trello

Accéder à l'API Trello en utilisant des scripts Python avec Connect Bridge

Georgii KapanadzeTechnical 1 Comment

trello avec logiciel de connexion

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 à l'API Trello avec des scripts Python, rapidement et sans avoir à apprendre l'API Trello ? Lisez ce tutoriel et découvrez comment c'est facile avec Connect Bridge.

Trello API Python - Introduction

Personne n'aime apprendre une documentation longue et compliquée pour les API à chaque fois qu'il est nécessaire d'y accéder. Cet article décrit comment accéder à l'API 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 des données via l'API Trello en utilisant principalement des instructions SQL simples. Les transferts de données se font via la couche ODBC. J'ai réalisé cela en Python en utilisant le module pyodbc ver. 3.0.7 x64

Qu'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 :

  1. Installez Connect Bridge (vous pouvez obtenir essai gratuit ici)
  2. Installez Python pour Windows ver. 3.3+
  3. Installez module pyodbc 3.0.7+ (j'ai utilisé le pyodbc-3.0.7.win-amd64-py3.3.exe)
  4. Afin de faciliter l'écriture, l'exécution et le débogage de mes scripts, j'ai utilisé Eclipse Luna avec pydev plugin
  5. 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
  • CB Administration Tool - ici vous pouvez configurer vos comptes pour la connexion au système cible
  • CB Query Analyzer - cet outil sert à visualiser le schéma de la base de données du système cible et vous pouvez essayer ici vos requêtes facilement

C'est pourquoi nous allons créer votre compte pour Trello. Ouvrez l'outil d'administration et, dans la section Comptes, créez un nouveau compte. Dans la boîte à boutons des connecteurs, sélectionnez CBTrelloConnector et cliquez sur Assistant d'authentification.

Se connecter à trello avec un logiciel de connexion

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.

trello avec logiciel de connexiontrello avec logiciel de connexion

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 faire un clic droit 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)

trello avec logiciel de connexiontrello avec logiciel de connexion

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 sur la sortie à des fins de démonstration (... peut être n'importe quel type de sortie... nous pouvons la formater en xml ou json, csv... ou n'importe quel type de format d'échange de données) ou simplement utiliser l'objet ligne de données brutes à utiliser dans une logique de code supplémentaire pour 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 exécuter n'importe quel autre shell que vous souhaitez utiliser...

Nous savons que notre CBQuery.py accepte deux arguments de la ligne de commande de position, le "connstr" et le "query".

Nous pouvons voir que le schéma contient une "table" appelée "liste", 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.

trello avec logiciel de connexiontrello avec logiciel de connexion

Nous pouvons maintenant essayer de créer une nouvelle carte Trello dans la première liste "blanche". Nous utiliserons pour cela la requête :

INSÉRER DANS LA CARTE (nom, liste d'identification) VALEURS ("Nouvelle carte", "565c0d32c75039b07e86b0b3")

trello avec logiciel de connexion

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

trello avec logiciel de connexion

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 d'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

  1. Avatar pour Soha Zain

    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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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