Trello API - 将卡与开发板连接,以根据开发板 ID 获取开发板名称

Trello API - connect cards with boards to get board name based on the board id

本文关键字:开发 ID 获取 连接 API Trello      更新时间:2023-09-26

所以我从所有列表中得到了所有卡片,在我的所有板子里:

var url3 = "https://api.trello.com/1/lists/"+listId+"/cards?key="+key+"&token="+token;

现在我需要以某种方式加入董事会列表并根据董事会 ID 获取每张卡的董事会名称,我不知道如何......

这是我的全部功能,试图获取所有具有截止日期的卡片,但我也想获取每张卡片所在的板的名称......

function getDues(listId){
    var xmlhttp3 = new XMLHttpRequest();
    var url3 = "https://api.trello.com/1/lists/"+listId+"/cards?key="+key+"&token="+token;
    xmlhttp3.onreadystatechange = function() {
        if(xmlhttp3.readyState == 4 && xmlhttp3.status == 200) {
            var arrCards = JSON.parse(xmlhttp3.responseText);
            var dueName = "";
            var dueDate = "";
            var board = "";
            for(c = 0; c < arrCards.length; c++){
                if(arrCards[c].due !== null){
                    var dueName = arrCards[c].name;
                    var dueDate = arrCards[c].due;
                    var boardNo = arrCards[c].idBoard;
                    var date = new Date(dueDate);
                    var deadline = "";
                    var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
                    var now = new Date();
                    var result = "https://api.trello.com/1/organizations/"+orgId+"/boards?key="+key+"&token="+token;
                    for (card in arrCards) {
                      if (!arrCards.hasOwnProperty(card)) { continue; }
                      var name = result.name;
                      card.boardName = name
                      console.log(card.boardName);
                    }
                }
            }
        }
    }
    xmlhttp3.open("GET", url3, true);
    xmlhttp3.send();
}

我得到的董事会名称只是"未定义"。

更新

改变了我获得卡片的方式,就像这样它的工作原理:

function getDues(boardId) {
  var xmlhttp3 = new XMLHttpRequest();
  var url3 = "https://api.trello.com/1/boards/"+boardId+"/cards?key="+key+"&token="+token;
  xmlhttp3.onreadystatechange = function() {
    if (xmlhttp3.readyState === 4 && xmlhttp3.status === 200) {
      var arrCards = JSON.parse(xmlhttp3.responseText);
      var dueName = "";
      var dueDate = "";
      var board = "";
      for (var c = 0; c < arrCards.length; c++) {
        if (arrCards[c].due !== null) {
          var dueName = arrCards[c].name; // due card name
          var dueDate = arrCards[c].due; // due date
          var boardNo = arrCards[c].idBoard; // board id
          var date = new Date(dueDate);
          var deadline = "";
          var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
          var now = new Date();
          var xmlhttpBoardName = new XMLHttpRequest();
          var boardNameUrl =  "https://api.trello.com/1/boards/" + boardNo + "/?key=" + key + "&token=" + token;
          xmlhttpBoardName.onreadystatechange = function() {
            if (xmlhttpBoardName.readyState === 4 && xmlhttpBoardName.status === 200) {
                var board = JSON.parse(xmlhttpBoardName.responseText);
                var boardName = board.name; // board name
            }
          }
          xmlhttpBoardName.open("GET", boardNameUrl, true);
          xmlhttpBoardName.send();
        }
      }
    }
  }
  xmlhttp3.open("GET", url3, true);
  xmlhttp3.send();
}

根据您的代码,这样的事情应该可以工作:

function getDues(listId) {
  var xmlhttp3 = new XMLHttpRequest();
  var url3 = "https://api.trello.com/1/lists/"+listId+"/cards?key="+key+"&token="+token;
  xmlhttp3.onreadystatechange = function() {
    if (xmlhttp3.readyState === 4 && xmlhttp3.status === 200) {
      var arrCards = JSON.parse(xmlhttp3.responseText);
      var dueName = "";
      var dueDate = "";
      var board = "";
      for (var c = 0; c < arrCards.length; c++) {
        if (arrCards[c].due !== null) {
          var dueName = arrCards[c].name;
          var dueDate = arrCards[c].due;
          var boardNo = arrCards[c].idBoard;
          var date = new Date(dueDate);
          var deadline = "";
          var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
          var now = new Date();
          var xmlhttpBoardName = new XMLHttpRequest();
          var boardNameUrl =  "https://api.trello.com/1/boards/" + boardNo + "/?key=" + key + "&token=" + token;
          xmlhttpBoardName.onreadystatechange = function() {
            if (xmlhttpBoardName.readyState === 4 && xmlhttpBoardName.status === 200) {
              var board = JSON.parse(xmlhttpBoardName.responseText);
              var boardName = board.name; // HERE YOU HAVE YOUR BOARD NAME
              console.log(boardName);
            }
          }
          xmlhttpBoardName.open("GET", boardNameUrl, true);
          xmlhttpBoardName.send();
        }
      }
    }
  }
  xmlhttp3.open("GET", url3, true);
  xmlhttp3.send();
}

无论如何,我建议您使用官方库,您不必处理所有http请求。