问题描述
我正在尝试根据一些结果更新我的棋盘,但很难找到更新卡片位置和颜色的最佳方法。这个想法是根据结果更新卡片,红色和顶部以引起我的注意;但如果一切正常,那么绿色和底部。
到目前为止我有:
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
)