使用Python和Trello API将成员添加到卡片

1 投票
1 回答
2163 浏览
提问于 2025-04-18 16:11

我在用我的Python脚本给一个卡片添加成员时遇到了困难。我正在循环遍历一个包含卡片ID的元组列表,想要更新这些卡片。我可以顺利执行PUT命令,但执行POST命令时却出现了错误。我对Python脚本还比较陌生,不太知道该如何进一步排查问题……请帮帮我。

执行PUT语句对我来说不太有效,因为它会把卡片上已有的成员都移除,只留下我指定的那个成员……我理想的情况是直接用POST命令把成员添加到卡片上。

这是我正在使用的代码:

for card in cards: 
    try:
        post_url = 'https://api.trello.com/1/cards/' + card[0] + '?key=<myKey>&token=<myWriteToken>'
        opener = urllib2.build_opener(urllib2.HTTPHandler)
        request = urllib2.Request(post_url, data='idMembers=<myMemberID>')
        request.get_method = lambda: 'POST'
        url = opener.open(request)
    except urllib2.HTTPError, e: print 'ERROR occured'
        print e.code
        print e.read()

我也尝试过这样做:

for card in cards: 
    try:
        post_url = 'https://api.trello.com/1/cards/' + card[0] + '?key=<myKey>&token=<myWriteToken>'
        opener = urllib2.build_opener(urllib2.HTTPHandler)
        query_args = {'idMembers':'<myMemberID>'}
        encoded_args = urllib.urlencode(query_args)
        request = urllib2.Request(post_url, encoded_args)
        request.get_method = lambda: 'POST'
        url = opener.open(request)
    except urllib2.HTTPError, e: print 'ERROR occured'
        print e.code
        print e.read()

1 个回答

1

你不应该向 /1/cards/(idCard) 发送请求,因为这根本不是一个有效的路径。要想给一个卡片添加成员,你应该向 /1/cards/(idCard)/idMembers 发送请求。

撰写回答