Python trello

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

Ana NetoTechnical 1 Comment

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

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

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

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

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

Что такое “Connect Bridge”?

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 – этот инструмент служит для визуализации схемы базы данных целевой системы, и здесь вы можете легко опробовать свои запросы.

Давайте создадим вашу учетную запись для Trello. Откройте инструмент администрирования и в разделе «Учетные записи» создайте новую учетную запись, в раскрывающемся списке «Соединители» выберите 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 принимает два позиционных аргумента командной строки: “connstr” и “query”.

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

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

Теперь мы можем попробовать создать новую карту Trello в первом ‘пустом’ списке. Для этого мы будем использовать запрос:

INSERT INTO Card (name, idlist) VALUES (‘New card’, ‘565c0d32c75039b07e86b0b3’)

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

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

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

Ограничения

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

Заключение

Мы доказали, что доступ к API Trello в 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.