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

Ondrej Papiernik Technique 1 Commentaire

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 pour 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 du langage Python (ont essayé dans la version 3.3) sans aucune expertise dans l'API de Trello. Pour ce tutoriel, vous aurez besoin de la plate-forme d'intégration Connect Bridge pour permettre la communication de données via l'API de 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 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.

Il vous suffit de remplir votre nom d'utilisateur et votre mot de passe et de permettre l'accès à votre Trello.

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 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)

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
Codage # : utf-8
'''
CBQuery2 -- interrogation de données à partir de, écriture de 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

@author :     Michal Hainc
@copyright : 2014
@licence :    Apache 2.0

@contact : michalhainc@gmail.com
@deffield mis à jour : 18.8.2014
'''

système d'importation
import os
importation pyodbc

de l'importation d'argparse ArgumentParser
de l'importation argparse RawDescriptionHelpFormatter

__all__ = []
__version__ = 0,1
__date__ = '2014-08-15
__mise à jour__ = '2014-08-15

DEBUG = 1
TESTRUN = 0
PROFIL = 0

classe 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 Aucun :
        argv = sys.argv
    d'autre part :
        sys.argv.extend(argv)

    nom_du_programme = os.path.nom_de_base(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]
    program_license = '''%s

  Créé par Michal Hainc sur %s.

  Sous licence Apache 2.0
  http://www.apache.org/licenses/LICENSE-2.0

  Distribué en l'état sans garantie
  ou des conditions de toute nature, qu'elles soient explicites ou implicites.

USAGE
% (program_shortdesc, str(__date__))

    essayer :
        # Analyseur d'arguments de configuration
        parser = ArgumentParser(description=licence_programme, 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)
        tandis que 1 :
            ligne = aucune
            essayer :
                row = curseur.fetchone()
            sauf :
                print(sys.exc_info()[1])
                pause
            sinon de ramer :
                break
            print(row)
                        
            
    sauf KeyboardInterrupt :
        ### gérer l'interruption clavier ###
        retour 0
    sauf :
        print(sys.exc_info()[1])
        #indent = len(nom_du_programme) * " "
        #sys.stderr.write(nom_programme + " : " + repr(e) + "n")
        #sys.stderr.write(indent + " for help use --help")
        retour 2

si __nom__ == "__main__" :
         
    si TESTRUN :
        import doctest
        doctest.testmod()
    si PROFIL :
        importer cProfile
        importation pstats
        nom_du_profil = 'CBQuery2_profile.txt'.
        cProfile.run('main()', nom_du_profil)
        statsfile = open("profile_stats.txt", "wb")
        p = pstats.Stats(nom_du_profil, stream=statsfile)
        stats = p.strip_dirs().sort_stats('cumulatif')
        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 un "tableau" appelé "liste", de sorte que nous pouvons 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 renvoyé 10 lignes dans la sortie.

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")

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 à Trello API en Python peut être vraiment facile en utilisant 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 comme Dynamics CRM, NAV, AX, Salesforce, Exchange et bien d'autres encore. Si vous souhaitez ne plus perdre votre temps à apprendre des centaines de pages de documentation sur les API chaque fois que vous vous retrouvez dans un nouveau système cible, demander un essai gratuit, les prix et toute autre question.

A la vôtre,
Ondrej

Commentaires 1

  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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.