Trello - 同时更新卡片位置和颜色

问题描述

我正在尝试根据一些结果更新我的棋盘,但很难找到更新卡片位置和颜色的最佳方法。这个想法是根据结果更新卡片,红色和顶部以引起我的注意;但如果一切正常,那么绿色和底部

到目前为止我有

def updateCard():
    url = f"https://api.trello.com/1/cards/{CARD_ID}/cover"

    headers = {
       "Accept": "application/json"
    }

    query = {
       'key': API_KEY,'token': OAUTH_TOKEN,'name': 'New Title','desc': 'New Description','pos': 'bottom','value': {'color': 'green'}
    }

    response = requests.request(
       "PUT",url,headers=headers,json=query
    )

    print(json.dumps(json.loads(response.text),sort_keys=True,indent=4,separators=(",",": ")))

代码来自:https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-put添加了我自己的变量。

我注意到为了改变颜色,我需要在响应中传递 json 变量,并让 URL 以“/cover”结尾。但是,这在尝试更新位置时不起作用。如果我从 URL 中取出 /cover,则位置会更新。有没有办法同时更新。

提前致谢!

解决方法

我不知道 Trello 的 API,如果不设置开发者帐户,我无法对其进行测试,但我的直觉是您可能可以像这样更改您的查询:

. . .

url = f"https://api.trello.com/1/cards/{CARD_ID}"

. . .

query = {
       'key': API_KEY,'token': OAUTH_TOKEN,'value': {
           'name': 'New Title','desc': 'New Description','pos': 'bottom','cover': {'color': 'green'}
       }
    }

看起来“cover”是“card”对象下的嵌套对象,因此您可以在该字段中放置一个对象。当您更新卡片的位置时,您应该直接访问卡片对象,而不是 /cover 字段。如果您希望您的请求只限于卡片封面,您可以使用 /cover 端点。

编辑:尝试新的请求格式

,

到目前为止解决此问题的方法(如果有人有更好的语法,请随时添加评论):

url = f"https://api.trello.com/1/cards/{CARD_ID}"
url_cover = f"https://api.trello.com/1/cards/{CARD_ID}/cover"

headers = {
   "Accept": "application/json"
}

query = {
   'key': API_KEY,'name': 'New Title 3','pos': 'top'
}

json = {
        'key': API_KEY,'value': {
        'brightness': 'dark','color': card_color,'size': 'full'}}

response = requests.request(
   "PUT",url,headers=headers,params=query
)

response = requests.request(
   "PUT",url_cover,json=json
)