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

Trello - Updating a cards position and color at the same time

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

到目前为止我有:

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,
   'token': OAUTH_TOKEN,
   'name': 'New Title 3',
   'desc': 'New Description',
   'pos': 'top'
}

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

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

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