gpt4 book ai didi

api - 使用 Trello API 在卡片上设置自定义字段值

转载 作者:行者123 更新时间:2023-12-03 23:16:44 27 4
gpt4 key购买 nike

我正在尝试使用 Trello API 的新自定义字段方法设置卡片上自定义字段的值。

我创建了一个类型为 number 的自定义字段.当我制作 GET通过它的 id 请求自定义字段,它返回这个自定义字段对象:

{
"id":"5ab13cdb8acaabe576xxxxx",
"idModel":"54ccee71855b401132xxxxx",
"modelType":"board",
"fieldGroup":"837a643fd25acc835affc227xxxxxxxxxxxxxxxxxxxx",
"name":"Test Number Field",
"pos":16384,
"type":"number"
}

然后当我在 Trello UI 中创建一张新卡片时(但不要在 Test Number Field 框中输入值)然后是 GET该卡使用 customFieldItems=true (如记录的 here ),它返回此卡片对象(删除了不相关的字段):
{
"id": "5ab56e6b62abac194d9xxxxx",
"name": "test1",
"customFieldItems": []
}

请注意,由于我没有在 Test Number Field 中输入任何内容UI 中的框, customFieldItems属性包含一个空白数组。

然后,如果我输入数字 1 Test Number Field UI 中的框和 GET再次卡,它返回这个(删除了不相关的字段):
{
"id": "5ab56e6b62abac194d9xxxxx",
"name": "test1",
"customFieldItems":
[
{
"id": "5ab570c5b43ed17b2dxxxxx",
"value": {
"number": "1"
},
"idCustomField": "5ab13cdb8acaabe5764xxxxx",
"idModel": "5ab56e6b62abac194d9xxxxx",
"modelType": "card"
}
]
}

我希望能够通过 API 设置此自定义字段的值。

当我转到“设置、更新和删除卡片上自定义字段的值”的 API 文档时,( here ) 我插入了以下信息:

查询授权
  • key :(我们有效/可用的 Trello API key )
  • token :(我们的有效/工作 Trello API token )

  • 路径参数
  • 身份证 :(应为其设置/更新自定义字段值的卡片的 ID)5ab56e6b62abac194d9xxxxx
  • idCustomField (卡片上自定义字段的 ID。):5ab570c5b43ed17b2dxxxxx

  • 查询参数
  • idCustomField (项目所属的自定义字段的 ID。):5ab13cdb8acaabe576xxxxx
  • 型号 (这应该总是卡。):card
  • (包含要为卡片的自定义字段值设置的键和值的对象。用于设置值的键应与定义的自定义字段的类型相匹配。):{"number": 2}

  • 当我点击 Try It 时,我得到响应: 400 Bad Request "Invalid custom field item value."
    我尝试了以下几件事:
  • 切换两者 idCustomField 值(令人困惑的是,路径参数和查询参数具有相同的名称,这意味着它们旨在接受相同的值,但随后它们具有不同的描述,并且描述含糊不清/令人困惑)。
  • 设置两者 idCustomField 相同的值(对于两个可能的 ID)
  • 将值设置为 2 , {"number": "2"} , {number: 2} , {number: "2"}和更多。

  • 无论我尝试什么,我总是得到 "Invalid custom field item value."无论卡片在自定义字段中是否具有值,这都以相同的方式运行。

    我很确定 idCustomField 在路径参数中被接受,因为当我改变一个字符时,它给了我这个错误: "invalid value for idCustomField" .

    所以我不知道 "Invalid custom field item value."指的是查询参数 idCustomField .

    我也不知道卡片是否在自定义字段中具有现有值是否有所不同,但我希望能够设置此自定义字段的值,无论它当前是否具有值场。

    最佳答案

    the Trello documentation page 上的实时示例(使用 XMLHttpRequest)是错的。您应该使用 fetch 使用下一个示例.

    var url = "https://api.trello.com/1/cards/{idCard}/customField/{idCustomField}/item?token={yourToken}&key={yourKey}";
    var data = {value: { number: "42" }};
    fetch(url, { body: JSON.stringify(data), method: 'PUT', headers: {'content-type': 'application/json'}})
    .then((resp) => resp.json())
    .then((data) => console.log(JSON.stringify(data, null, 2)))
    .catch((err) => console.log(JSON.stringify(err, null, 2)))

    这个例子有效。在尝试了这个之后,我修改了 XMLHttpRequest版本,它也有效。
    var data = null;
    var xhr = new XMLHttpRequest();
    xhr.addEventListener("readystatechange", function () {
    if (this.readyState === this.DONE) {
    console.log(this.responseText);
    }
    });

    data = {value: { number: "3" }}; //added
    var json = JSON.stringify(data); //added

    xhr.open("PUT", 'https://api.trello.com/1/cards/{idCard}/customField/{idCustomField}/item?key={yourkey}&token={yourtoken}');
    xhr.setRequestHeader('Content-type','application/json'); //added
    xhr.send(json); //modified

    关键是你应该 1) 设置请求 Content-type标题到 application/json 2) 通过 value通过 JSON 对象主体。

    我试图编辑文档中的实时示例,但我无法做到。我希望他们能尽快修复它。

    关于api - 使用 Trello API 在卡片上设置自定义字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49458850/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com