Zugriff auf die Trello-API über Python-Skripte mit Connect Bridge

Ondrej Papiernik Technical 1 Comment

Dort geben Sie einfach Ihren Benutzernamen und Ihr Passwort ein und erlauben den Zugang zu Ihrem Trello.

Möchten Sie mit Python-Skripten schnell und ohne die Notwendigkeit, die Trello-API zu erlernen, auf die Trello-API zugreifen? Lesen Sie dieses Tutorial und erfahren Sie, wie einfach es mit Connect Bridge ist.

Trello API Python - Einführung

Niemand mag es, lange und komplizierte Dokumentationen für APIs jedes Mal zu lernen, wenn ein Bedarf besteht, auf sie zuzugreifen. Dieser Artikel beschreibt, wie man auf die Trello-API über Python (haben in Version 3.3 versucht) Sprachskripte zugreifen kann, ohne sich mit der API von Trello auskennen zu müssen. Für dieses Tutorial benötigen Sie die Integrationsplattform Connect Bridge, um die Datenkommunikation über die Trello-API mit meist einfachen SQL-Anweisungen zu ermöglichen. Die Datentransfers erfolgen über die ODBC-Schicht. Dies habe ich in Python mit dem pyodbc-Modul ver erreicht. 3.0.7 x64

Was bedeutet "Brücke verbinden"?

Connect Bridge ist eine Integrationsplattform, die es ermöglicht, jede Software über ODBC, JDBC-Treiber und Webdienste mit mehr als 31 Konnektoren (einschließlich Trello) zu verbinden. Entwickler können auf diese Konnektoren in jeder beliebigen Programmiersprache zugreifen, ohne über Kenntnisse des Zielsystems verfügen zu müssen, im Wesentlichen innerhalb weniger Minuten. Die Sache ist die, dass man mit dem Tool nicht nur über Python auf die Trello-API zugreifen kann, sondern auch Daten von/nach MS Exchange, MS Dynamics CRM, MS SharePoint und vielen anderen Systemen abrufen/eingeben kann.

Voraussetzungen

Lassen Sie uns nun den Entwicklungsprozess eines einfachen Python-Skripts durchgehen, das über einen ODBC-Treiber über die Connect Bridge auf die Trello-API zugreift:

  1. Installieren Sie Connect Bridge (Sie können kostenloser Test hier)
  2. installieren Python für Windows ver. 3.3+
  3. installieren pyodbc-Modul 3.0.7+ (Ich habe die pyodbc-3.0.7.win-amd64-py3.3.exe)
  4. Um das Schreiben & Ausführen & Debuggen meiner Skripte zu erleichtern, habe ich Finsternis Luna mit pydev Plugin
  5. Einrichtungskonto für Trello in Connect Bridge (siehe Absatz unten)

Einrichtung der Verbindungsbrücke

Nach der Installation von Connect Bridge können Sie drei Anwendungen sehen:

  • CB Service Controller - dient zum Starten und Stoppen der Connect Bridge
  • CB Administration Tool - hier können Sie Ihre Konten für die Verbindung zum Zielsystem einrichten
  • CB Query Analyzer - dieses Tool dient zur Visualisierung des Datenbankschemas des Zielsystems und Sie können hier Ihre Abfragen einfach ausprobieren

Lassen Sie uns also Ihr Konto für Trello erstellen. Öffnen Sie das Administrationswerkzeug und erstellen Sie im Abschnitt Konten ein neues Konto. Wählen Sie in der Combobox Konnektoren die Option CBTrelloConnector und klicken Sie auf Authentifizierungsassistent.

Dann speichern Sie es einfach und wir haben unser Konto.
Jetzt können wir das CB Query Analyzer-Tool zur Visualisierung von Schemata verwenden. Wir müssen eine neue Verbindung hinzufügen, wie in der Abbildung unten beschrieben.

Für die Verbindung von einem Python-Skript aus benötigen wir eine Verbindungszeichenfolge zu diesem Konto.

Um unsere Verbindungszeichenfolge zu kennen, können wir einfach mit der rechten Maustaste auf die Trello-Verbindung klicken und dann auf "Verbindung bearbeiten" klicken, im Verbindungseditor die Registerkarte "Erweitert" wählen und den Wert aus dem Textfeld "Verbindungszeichenfolge" kopieren. (Siehe Bilder unten)

Hände aufs Skript!

Der Kern und gleichzeitig die einzige Datei in meiner Lösung ist CBQuery.py. Den Quellcode finden Sie unten.

 #!/usr/local/bin/python2.7
#-Kodierung: utf-8
'''
CBQuery2 -- Daten abfragen von, Daten schreiben in SharePoint, Dynamics CRM, Exchange
CBQuery2 ist ein Skript, mit dem SQL-Abfragen über den ODBC-Treiber Connect Bridge ausgeführt werden können.

@Autor:     Michal Hainc
@Copyright: 2014
@Lizenz:    Apache 2.0

@Kontakt: michalhainc@gmail.com
@deffield aktualisiert: 18.8.2014
'''

Importsysteme
Import-OS
Einfuhr pyodbc

aus argparse importieren ArgumentParser
aus argparse import RawDescriptionHelpFormatter

__alle__ = []
__Version__ = 0,1
__Datum__ = '2014-08-15'.
__aktualisiert__ = '2014-08-15'.

DEBUG = 1
TESTRUN = 0
STECKBRIEF = 0

Klasse CLIError(Ausnahme):
    '''Generische Ausnahme, um verschiedene fatale Fehler auszulösen und zu protokollieren.'''
    def __init__(selbst, msg):
        super(CLIError).__init__(Typ(selbst))
        self.msg = "E: %s" % msg
    def __str__(selbst):
        selbst.msg zurückgeben
    def __unicode__(self):
        selbst.msg zurückgeben

def main(argv=Keine): # IGNORE:C0111
    '''Kommandozeilenoptionen'''

    wenn argv keine ist:
        argv = sys.argv
    sonst:
        sys.argv.erweitern(argv)

    programm_name = os.pfad.basename(sys.argv[0])
    programm_version = "v%s" % __version__
    program_build_date = str(__aktualisiert__)
    program_version_message = '%%(prog)s %s (%s)' % (program_version, program_build_date)
    program_shortdesc = __import__('__main__').__doc__.split("n")[1]
    Programm_Lizenz = '''%s

  Erstellt von Michal Hainc auf %s.

  Lizenziert unter der Apache-Lizenz 2.0
  http://www.apache.org/licenses/LICENSE-2.0

  Verteilt auf einer "AS IS"-Basis ohne Gewährleistungen
  oder Bedingungen jeglicher Art, weder ausdrücklich noch stillschweigend.

VERWENDUNG
''' % (program_shortdesc, str(__date__))

    versuchen:
        # Einrichtungs-Argument-Parser
        Parser = ArgumentParser(description=program_license, formatatter_class=RawDescriptionHelpFormatter)
        parser.add_argument('connstr')
        parser.add_argument('abfrage')
        
        # Prozess-Argumente
        args = parser.parse_args()

        Abfrage = args.abfrage
        connstr = args.connstr

        conn = pyodbc.connect(connstr)
        Cursor = Verbindungscursor()
        cursor.execute(Abfrage)
        während 1:
            Zeile = Keine
            versuchen:
                Zeile = cursor.fetchone()
            außer:
                drucken(sys.exc_info()[1])
                Pause
            wenn nicht Reihe:
                unterbrechen
            drucken(Zeile)
                        
            
    außer KeyboardInterrupt:
        ### behandeln Tastatur-Unterbrechung ###
        Rückgabe 0
    außer:
        drucken(sys.exc_info()[1])
        1TP3Einrückung = len(Programm-Name) * " "
        #sys.stderr.write(programm_name + ": " + repr(e) + "n")
        #sys.stderr.write(Einrückung + " für Hilfe verwenden --help")
        Rückkehr 2

wenn __name__ == "__hauptsächlich__":
         
    wenn TESTRUN:
        Doktest importieren
        doctest.testmod()
    wenn PROFIL:
        cProfil importieren
        pstats importieren
        Profil_Dateiname = 'CBQuery2_profile.txt'.
        cProfil.run('main()', Profil_Dateiname)
        statsfile = offen ("profile_stats.txt", "wb")
        p = pstats.Stats(profile_filename, stream=statsfile)
        stats = p.strip_dirs().sort_stats('kumulativ')
        stats.print_stats()
        statsfile.close()
        sys.exit(0)
    sys.exit(main())
  • connstr (Verbindungszeichenfolge) enthält die ODBC-Verbindungszeichenfolge, die wir an das pyodbc-Modul übergeben, um eine ODBC-Verbindung zu erstellen, die in der conn-Variablen
  • Als nächsten Schritt öffnen wir einen Datenbank-Cursor unter Verwendung der Verbindung, die in conn
  • dann führen wir die SQL-Abfrage aus, die über den Befehlszeilenparameter namens query
  • als letztes verwenden wir eine while-Schleife, um die Ergebnisse des Cursors Zeile für Zeile auszulesen, wenn cursor.fetchone None zurückgibt, brechen wir die Schleife ab
  • Wenn während des ODBC-Abrufs eine Ausnahme auftritt, brechen wir auch die Schleife ab und drucken das Problem zur Ausgabe
  • Wenn die fetchone-Methode erfolgreich ist und eine Datenzeile zurückgibt, werden wir die Rohdatenzeile zu Demonstrationszwecken in die Ausgabe drucken (... könnte jede Art von Ausgabe sein... wir könnten als xml oder json, csv... oder jede Art von Datenaustauschformat formatieren) oder einfach das Rohdatenzeilenobjekt verwenden, das in weiterer Codelogik verwendet wird, um benutzerdefinierte Aufgaben auszuführen

Ausführen des Skripts CBQuery.py

Ich habe mein Skript mit der Windows PowerShell getestet, aber Sie können jede andere Shell ausführen, die Sie verwenden möchten...

Wir wissen, dass unsere CBQuery.py zwei positionale Kommandozeilenargumente akzeptiert: "connstr" und "query".

Wir können sehen, dass das Schema eine "Tabelle" namens "Liste" enthält, so dass wir unsere Abfrage als SELECT * FROM list LIMIT 10 konstruieren können, um die ersten 10 Einträge aus der Trello-Liste auszuwählen, und durch Ausführen der Abfrage, wie wir auf unserem Bild unten sehen können, dass die Abfrage 10 Zeilen in der Ausgabe zurückgab.

Jetzt können wir versuchen, eine neue Trello-Karte in die erste "Blank"-Liste aufzunehmen. Wir werden dafür die Abfrage verwenden:

IN DIE KARTE EINFÜGEN (Name, ID-Liste) WERTE ('Neue Karte', '565c0d32c75039b07e86b0b3')

Sie können in Trello sehen, dass die neue Karte erfolgreich erstellt wurde.

Einschränkungen

Bislang konnte ich das Tool Connect Bridge nur von Windows-Betriebssystemen aus verwenden, da Connecting Software keine ODBC-Linux-Client-Bibliothek zur Verfügung stellte (falls das überhaupt möglich ist). Stellen Sie also sicher, dass Sie mit Ihren Python-Skripten auf einer Windows-Maschine spielen.

Schlussfolgerung

Wir haben bewiesen, dass der Zugriff auf die Trello-API in Python mit dem Integrationswerkzeug Connect Bridge wirklich einfach sein kann. Und Trello ist nur ein System unter vielen anderen, die mit Connect Bridge integriert werden können. Stellen Sie sich vor, Sie können sicher auf die APIs der wichtigsten Software und Dienste wie Dynamics CRM, NAV, AX, Salesforce, Exchange und viele andere zugreifen. Wenn Sie daran interessiert sind, Ihre Zeit nicht mehr mit dem Lernen von Hunderten von API-Dokumentationsseiten zu verschwenden, wenn Sie auf ein neues Zielsystem stoßen, kostenlose Testversion, Preise und weitere Fragen anfordern.

Prost,
Ondrej

Comments 1

  1. Erstaunlich gute Arbeit. Diese beiden Punkte sind gut abgedeckt: "Aufbau der Verbindungsbrücke" und "Einschränkungen". Vielen Dank für die Weitergabe des Themas "Zugriff auf die Trello-API mit Python-Skripten mit Connect Bridge". Der beste Teil ist, dass der Artikel alle praktischen Details enthält! Teilen Sie weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.