
在这里你只需填写你的用户名和密码,并允许访问你的Trello。
渴望用Python脚本快速访问Trello API,而不需要学习Trello API?请阅读本教程,了解使用Connect Bridge是多么简单。
Trello API Python - 简介
没有人喜欢每次需要访问 API 时都要学习冗长复杂的文档。本文介绍了如何通过 Python(已尝试过 3.3 版)语言脚本访问 Trello API,而无需任何 Trello API 方面的专业知识。本教程需要集成平台 Connect Bridge,以便通过 Trello API 使用简单的 SQL 语句进行数据通信。数据传输通过 ODBC 层进行。我在 Python 中使用 pyodbc 模块 ver.3.0.7 x64什么是 “Connect Bridge”?
Connect Bridge 是一个集成平台,允许通过ODBC、JDBC驱动和Web服务与超过31个连接器(包括Trello)连接任何软件。开发人员可以用任何编程语言访问这些连接器,而不需要具备目标系统的专业知识,基本上在几分钟内就可以完成。最重要的是,你不仅可以使用该工具通过Python访问Trello API,你还可以从MS Exchange、MS Dynamics CRM、MS SharePoint和更多系统中抓取/输入数据。先决条件
现在让我们通过简单的Python脚本的开发过程,通过几个简单的步骤,使用Connect Bridge通过ODBC驱动访问Trello API。
- 安装Connect Bridge(你可以在这里得到 免费试用)
- 安装 适用于Windows的Python 3.3+版本3.3+
- 安装 pyodbc模块 3.0.7+ (我曾用过的是 pyodbc-3.0.7.win-amd64-py3.3.exe)
- 为了让我的脚本的编写、运行和调试更容易,我使用了 日食 Luna与 pydev 插件
- 在Connect Bridge中为Trello设置账户(见下段)。
Connect Bridge设置
安装Connect Bridge后,可以看到三个应用。
- CB 服务控制器 - 用于启动和停止 Connect Bridge
- CB 管理工具 - 您可以在此设置与目标系统连接的账户
- CB 查询分析器 - 该工具用于目标系统数据库模式的可视化,您可以在此轻松尝试查询。
现在就来创建 Trello 账户。打开管理工具,在 "账户 "部分创建新账户,在 "连接器 "组合框中选择 CBTrelloConnector,然后点击 "身份验证向导"。.

那么只要保存好,我们的账户就有了。
现在我们可以使用CB Query Analyzer工具来可视化模式。我们需要添加新的连接,如下图所示。


为了从python脚本连接,我们将需要一个连接字符串到这个账户。
要知道我们的连接字符串,我们只需右键单击 Trello 连接,然后单击 “编辑连接”,在连接编辑器中选择 “高级 ”选项卡,并复制文本框 “连接字符串 ”中的值即可。(见下图)


手把手教你写脚本!
核心同时也是我的解决方案中唯一的文件是CBQuery.py。请在下面找到源代码。
#!/usr/local/bin/python2.7
# 编码: utf-8
'''
CBQuery2 -- 从SharePoint、Dynamics CRM、Exchange查询数据,并将数据写入其中
CBQuery2是一个脚本,允许通过Connect Bridge ODBC驱动运行SQL查询。
@作者。 Michal Hainc
@版权:2014
@license: Apache 2.0
@联系:michalhainc@gmail.com
@deffield更新。18.8.2014
'''
输入sys
import os
import pyodbc
from argparse import ArgumentParser
从argparse中导入RawDescriptionHelpFormatter
__全部__ = []
__version__ = 0.1
__date__ = '2014-08-15
__updated__ = '2014-08-15'.
DEBUG = 1
TESTRUN = 0
PROFILE = 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):
返回 self.msg
def main(argv=None):# ignore:c0111
'''命令行选项'''。
如果argv是无。
argv = sys.argv
否则。
sys.argv.extend(argv)
program_name = os.path.basename(sys.argv[0])
program_version = "v%s" % __version__。
program_build_date = str(__updated__)
program_version_message = '%%(program)s %s (%s)' % (program_version, program_build_date)
program_shortdesc = __import__('__main__').__doc__.split("n")[1]
program_license = '''%s
由Michal Hainc在%s上创建。
以Apache许可证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 = cursor.fetchone()
除了。
print(sys.exc_info()[1])
休息
如果不是行。
break
print(row)
除了KeyboardInterrupt。
###处理键盘中断 ###
返回0
除外。
print(sys.exc_info()[1])
#indent = len(program_name) * " "
#sys.stderr.write(program_name + ": " + repr(e) + "n")
#sys.stderr.write(indent + " for help use --help")
返回2
如果 __name__ == "__main__":
如果 TESTRUN:
输入doctest
doctest.testmod()
if PROFILE:
输入cProfile
输入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())
- connstr (Connection string) 持有ODBC连接字符串,我们将其传递给pyodbc模块,以创建一个ODBC连接,存储在conn变量中。
- 下一步,我们使用存储在conn中的连接打开一个数据库游标。
- 然后我们执行通过命令行参数query传递的SQL查询
- 最后,我们使用一个while循环逐行读取游标的结果,当cursor.fetchone返回None时,我们中断这个循环
- 如果在ODBC获取过程中出现异常,我们也会中断循环,并将问题打印出来输出
- 如果 fetchone 方法成功并返回了数据行,我们将把原始数据行打印到输出中以供演示(......可以是任何类型的输出......我们可以将其格式化为 xml 或 json、csv......或任何类型的数据交换格式),或者干脆使用原始数据行对象,以便在进一步的代码逻辑中用于执行自定义任务
运行CBQuery.py脚本
我使用 Windows PowerShell 测试了我的脚本,但您也可以运行您喜欢使用的任何其他 shell...
我们知道 CBQuery.py 接受两个位置命令行参数,即 “connstr ”和 “query”。.
我们可以看到,模式中包含一个名为 “list ”的 “表”,因此我们可以将查询构造为 SELECT * FROM list LIMIT 10,从 Trello 列表中选择前 10 个条目。.


现在我们可以尝试在第一个 ‘空白 ’列表中创建新的 Trello 卡。我们将使用查询:
INSERT INTO 卡(名称、idlist) VALUES(‘新卡’、‘565c0d32c75039b07e86b0b3)

您可以在Trello中看到新的卡片已经成功创建。

限制因素
到目前为止,我只能在Windows操作系统上使用Connect Bridge工具,因为Connecting Software没有提供任何ODBC Linux客户端库(如果这是可能的话)。所以一定要在Windows机器上玩你的Python脚本。
结论
我们已经证明,使用 Connect Bridge 集成工具,在 Python 中访问 Trello API 变得非常简单。而 Trello 只是 Connect Bridge 可以集成的众多系统中的一个。想象一下,你可以安全地访问 Dynamics CRM、NAV、AX、Salesforce、Exchange 等主要软件和服务的 API。如果您有兴趣在每次遇到新的目标系统时不再浪费时间学习成百上千页的API文档,那么Connect Bridge将是您的最佳选择、, 询问免费试用,价格和任何其他问题。.
干杯。
Ondrej

Comments 1
Amazingly Great job。这两点涵盖得很好:"Connect Bridge设置 "和 "约束"。感谢分享这个主题 "使用Connect Bridge的Python脚本访问Trello API"。最棒的是,文章中有所有实用的细节!继续分享。继续分享。