Python trello

Доступ к Trello API с помощью Python скриптов с Connect Bridge

Georgii KapanadzeTechnical 1 Comment

trello с подключением программного обеспечения

Там ты просто заполняешь свое имя пользователя и пароль и разрешаешь доступ к твоему Trello.

Хотите получить доступ к Trello API с помощью скриптов Python быстро и без необходимости изучать Trello API? Прочитайте это руководство и узнайте, как это просто с Connect Bridge.

Trello API Python - Введение

Никому не нравится изучать длинную и сложную документацию по API каждый раз, когда возникает необходимость доступа к нему. Эта статья описывает, как получить доступ к Trello API через скрипты на языке Python (мы пробовали в версии 3.3) без каких-либо знаний об API Trello. Для этого руководства вам понадобится интеграционная платформа Connect Bridge, позволяющая передавать данные через Trello API, используя в основном простые SQL-запросы. Передача данных осуществляется через уровень ODBC. Я достиг этого на Python, используя модуль pyodbc ver. 3.0.7 x64

Что такое "1ТП16Т"?

Connect Bridge является интеграционной платформой, которая позволяет подключать любое программное обеспечение через ODBC, JDBC драйверы и веб-службы с более чем 31 коннектором (включая Trello). Разработчики могут получить доступ к этим разъемам на любом языке программирования без необходимости иметь опыт работы с целевой системой, в основном в течение нескольких минут. Дело в том, что вы можете использовать инструмент для доступа не только к Trello API через Python, вы также можете захватывать/выводить данные из/в MS Exchange, MS Dynamics CRM, MS SharePoint и многих других систем.

Предпосылки

Теперь давайте рассмотрим процесс разработки простого Python скрипта, который обращается к Trello API с помощью Connect Bridge через ODBC драйвер в несколько простых шагов:

  1. Установите Connect Bridge (вы можете получить бесплатная пробная версия здесь)
  2. Установить Питон для Windows Вер. 3.3+
  3. Установить модуль пиодбк 3.0.7+ (я использовал pyodbc-3.0.7.win-amd64-py3.3.exe)
  4. Для того, чтобы облегчить написание и выполнение и отладку моих сценариев, я использовал Затмение Луна с пыдев плагин
  5. Установка учетной записи для Trello в Connect Bridge (см. параграф ниже)

Connect Bridge настройка

После установки Connect Bridge можно увидеть три приложения:

  • Контроллер CB Service - служит для запуска и остановки Connect Bridge
  • Инструмент администрирования CB - здесь вы можете настроить свои аккаунты для подключения к целевой системе
  • Анализатор запросов CB Query Analyzer - этот инструмент служит для визуализации схемы базы данных целевой системы, и вы можете легко попробовать здесь свои запросы.

Так что давай создадим твой аккаунт для Трелло. Откройте инструмент администрирования и в разделе Аккаунты создайте новый аккаунт, в поле Коннекторы выберите CBTrelloConnector и нажмите Мастер Аутентификации.

Войдите в trello с помощью подключаемого программного обеспечения

Тогда просто сохрани его, и у нас будет наш счет.
Теперь мы можем использовать инструмент CB Query Analyzer для визуализации схемы. Нам необходимо добавить новое соединение, как описано на рисунке ниже.

trello с подключением программного обеспеченияtrello с подключением программного обеспечения

Для подключения от питоновского скрипта нам понадобится строка подключения к этому аккаунту.

Чтобы узнать нашу строку соединения, достаточно щелкнуть правой кнопкой мыши по соединению с Trello, а затем нажать кнопку "Редактировать соединение", в редакторе соединений выбрать закладку "Дополнительно" и скопировать значение из текстового поля "Строка соединения". (См. рисунки ниже)

trello с подключением программного обеспеченияtrello с подключением программного обеспечения

Руки на сценарии!

Ядро и в то же время единственный файл в моем решении - CBQuery.py. Пожалуйста, найдите исходный код ниже.

 #!/usr/local/bin/python2.7
# кодировка: utf-8
'''
CBQuery2 -- запрос данных из, запись данных в SharePoint, Dynamics CRM, Exchange
CBQuery2 - это скрипт, позволяющий выполнять SQL-запросы через ODBC-драйвер Connect Bridge.

@author:     Michal Hainc
@copyright: 2014
@лицензия:    Apache 2.0

@contact: michalhainc@gmail.com
@deffield updated: 18.8.2014
'''

импортировать sys
импортировать os
импортировать pyodbc

from argparse import ArgumentParser
from argparse import RawDescriptionHelpFormatter

__all__ = []
__version__ = 0.1
__date__ = '2014-08-15'
__updated__ = '2014-08-15'

DEBUG = 1
ТЕСТРУН = 0
ПРОФИЛЬ = 0

class CLIError(Exception):
    '''Общее исключение для создания и регистрации различных фатальных ошибок.'''
    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
    '''Параметры командной строки.'''

    если argv = None:
        argv = sys.argv
    else:
        sys.argv.extend(argv)

    имя_программы = 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]
    program_license = '''%s

  Создано Михалом Хайнцем на %s.

  Лицензируется по лицензии Apache License 2.0
  http://www.apache.org/licenses/LICENSE-2.0

  Распространяется на условиях "КАК ЕСТЬ" без гарантий
  или условий любого рода, явных или подразумеваемых.

ИСПОЛЬЗОВАНИЕ
''' % (program_shortdesc, str(__date__))

    попытка:
        # Настройка анализатора аргументов
        parser = ArgumentParser(description=program_license, formatter_class=RawDescriptionHelpFormatter)
        parser.add_argument('connstr')
        parser.add_argument('query')
        
        # Аргументы процесса
        args = parser.parse_args()

        query = args.query
        connstr = args.connstr

        conn = pyodbc.connect(connstr)
        cursor = conn.cursor()
        cursor.execute(query)
        while 1:
            row = None
            попытка:
                row = cursor.fetchone()
            except:
                print(sys.exc_info()[1])
                break
            if not row:
                break
            print(row)
                        
            
    except KeyboardInterrupt:
        ### обработать прерывание клавиатуры ###
        возврат 0
    исключение:
        print(sys.exc_info()[1])
        #indent = len(имя_программы) * " "
        #sys.stderr.write(имя_программы + ": " + repr(e) + "n")
        #sys.stderr.write(indent + " для справки используйте --help")
        возврат 2

if __name__ == "__main__":
         
    if TESTRUN:
        import doctest
        doctest.testmod()
    if PROFILE:
        import cProfile
        import pstats
        profile_filename = 'CBQuery2_profile.txt'
        cProfile.run('main()', profile_filename)
        statsfile = open("profile_stats.txt", "wb")
        p = pstats.Stats(profile_filename, stream=statsfile)
        stats = p.strip_dirs().sort_stats('cumulative')
        stats.print_stats()
        statsfile.close()
        sys.exit(0)
    sys.exit(main())
  • connectstr (строка соединения) содержит строку соединения ODBC, которую мы передаем в модуль pyodbc для создания соединения ODBC, хранящегося в переменной conn
  • в качестве следующего шага мы открываем курсор базы данных, используя соединение, хранящееся в подключении.
  • затем мы выполняем SQL-запрос, переданный через параметр командной строки с именем запроса.
  • как и в прошлый раз, мы используем цикл для чтения результатов от курсора ряд за рядом, когда курсор.fetchone возвращает None, мы прерываем цикл
  • если во время извлечения ODBC происходит исключение, мы также прерываем цикл и выводим на печать проблему.
  • если метод fetchone будет продолжать и вернет строку данных, мы распечатаем строку необработанных данных на выход для демонстрационных целей (... может быть любой вид вывода... мы можем отформатировать как xml или json, csv... или любой вид формата обмена данными) или просто используем объект строки необработанных данных, который будет использоваться в дальнейшей логике кода для выполнения пользовательских задач

Запуск сценария CBQuery.py

Я протестировал свой скрипт с помощью Windows PowerShell, но вы можете запустить любую другую оболочку, которую захотите использовать...

Мы знаем, что наш CBQuery.py принимает два аргумента позиционной командной строки - "конструкт" и "запрос".

Мы видим, что схема содержит "таблицу" под названием "list", поэтому мы можем построить наш запрос как SELECT * FROM list LIMIT 10, чтобы выбрать первые 10 записей из списка Trello, и, выполнив запрос, как мы видим на нашем рисунке ниже, запрос вернул 10 строк.

trello с подключением программного обеспеченияtrello с подключением программного обеспечения

Теперь мы можем попробовать создать новую карту Trello в первый список "Пустых". Мы будем использовать для этого запрос:

INSERT INTO Card (имя, idlist) VALUES ("Новая карта", '565c0d32c75039b07e86b0b3')

trello с подключением программного обеспечения

В Трелло можно увидеть, что новая карта была успешно создана.

trello с подключением программного обеспечения

Ограничения

До сих пор я мог использовать инструмент Connect Bridge только из операционных систем Windows, благодаря тому, что Connecting Software не предоставил никакой клиентской библиотеки ODBC Linux (если это вообще возможно). Поэтому не забудьте поиграть со своими Python скриптами на машине под управлением Windows.

Заключение

Мы доказали, что доступ к Trello API в Python может быть действительно простым с помощью инструмента интеграции Connect Bridge. И Trello - это только одна система из многих других, которые Connect Bridge позволяет интегрировать. Представьте, что вы можете безопасно получить доступ к API основных программ и сервисов, таких как Dynamics CRM, NAV, AX, Salesforce, Exchange и многих других. Если вы заинтересованы в том, чтобы перестать тратить свое время на изучение сотен страниц документации по API каждый раз, когда вы сталкиваетесь с новой целевой системой, запросить бесплатную пробную версию, цены и любые дополнительные вопросы.

Спасибо,
Ondrej

Comments 1

  1. Аватар для Сохи Заин

    Удивительно хорошая работа. Эти две точки хорошо охвачены; "Установка Connect Bridge" и "Ограничения". Спасибо, что поделились этой темой "Доступ к Trello API с помощью Python скриптов с Connect Bridge". Самое интересное, что статья содержит все практические детали! Продолжайте делиться.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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