Trelloのリスト一覧とコメントを取得

```javascript

function getCardId() {
 
  var trelloKey   = "XXX";//keyを入力してください
  var trelloToken = "XXX";//tokenを入力してください
  var listId 　　  = "XXX";//リストIDを入力してください
  var boardUrl = "https://trello.com/1/boards/" + listId + "/lists?key=" + trelloKey + "&&token=" + trelloToken;//メンバー図鑑のリストの一覧を取得
  var boardRes = UrlFetchApp.fetch(boardUrl, {'method':'get'});
  var boardJson = JSON.parse(boardRes.getContentText());
  var boardMaxRows = boardJson.length; //格納されているデータの行数を取得


  
  for(var i = 1; i < boardMaxRows; i++){

    //必要なデータのKeyを指定して値を取得する
    var listName = boardJson[i].name;    
    var listId = boardJson[i].id;
    
    //メンバー図鑑のカード取得
    var listsUrl = "https://trello.com/1/lists/" + listId + "/cards?key=" + trelloKey + "&token=" + trelloToken;    
    var listsRes = UrlFetchApp.fetch(listsUrl, {'method':'get'});
    var listsJson = JSON.parse(listsRes.getContentText());

    var cards =[]; //箱を作る
    var comment =[]; //箱を作る
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    
    if(GetAllSheet(listName)){
      //既にシートは作成してあるので、何もしない
    }else{
      //シートは作成
    spreadsheet.insertSheet(listName);
    }
    
    var listsMaxRows = listsJson.length; //格納されているデータの行数を取得
    
    for(var j = 0; j < listsMaxRows; j++){
      
      //必要なデータのKeyを指定して値を取得する
      var id = listsJson[j].id;
      var name = listsJson[j].name;
      var desc = listsJson[j].desc;
      var shortUrl = listsJson[j].shortUrl;
      
      //メンバー図鑑のカード取得
      var commentUrl = "https://trello.com/1/cards/" + id + "/actions?key=" + trelloKey + "&token=" + trelloToken;
      var commentRes = UrlFetchApp.fetch(commentUrl, {'method':'get'});
      var commentJson = JSON.parse(commentRes.getContentText());
      var commentMaxRows = commentJson.length; //格納されているデータの行数を取得

      for(var n = 0; n < commentMaxRows; n++){    
        
        var commentpre = commentJson[n].data.text;
              
        if (commentpre == null || commentpre == undefined){
          comment[j] = '';
        }else{
          comment[j] += commentpre + String.fromCharCode(10)  + String.fromCharCode(10) ;
          comment[j] = comment[j].replace(/undefined/g,'');
          Logger.log(comment[j]); 
        }
      }     

      //取得したここのデータをまとめて、ひとつのカード情報としてまとめる
      var card = [name, desc, shortUrl, comment[j]];
      
      //先程取得したcardsという箱に追加する
      cards.push(card);

      //    Logger.log(listsMaxRows);

    var sheet = spreadsheet.getSheetByName(listName);//リストというシートに保存
    var lastRow = cards.length;
    var column = cards[0].length;
    sheet.getRange(2,1,lastRow,column).setValues(cards);
   }
  insertRecords(listName);
  }

}

function insertRecords(listName){
  
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var mySheet = spreadsheet.getSheetByName(listName);
 
  arrData = [
    ['名前','説明','URL','コメント'],
    ];
 
  var rows = arrData.length;
  var cols = arrData[0].length;

  mySheet.getRange(1,1,rows,cols).setValues(arrData);
 
}

//シートがあるかないかの判定
 function GetAllSheet(listName) {
  var objSheets
  objSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var intMaxIndex = objSheets.length;
  for (intIndex = 0; intIndex < intMaxIndex; intIndex++) {
    if(objSheets[intIndex].getName() == listName){
      return true;
    }
  }
}

// スプレッドシートのメニューからPDF作成用の関数を実行出来るように、「Trello同期実行」というメニューを追加。
function onOpen() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    var entries = [       
        {
            name : "Trelloのメンバー図鑑と同期する",
            functionName : "getCardId"
        }
        ];
    sheet.addMenu("Trello同期実行", entries);
};

```