前提・実現したいこと
trelloのボード内にあるリストに含まれるカードの内容を別のリストのカードに反映させるプログラムを書こうとしています。
日付や担当者、タイトルなどはうまく移せているのですが、チェックリストが移せません。どのようにしたらチェックリストも反映されるようになるのでしょうか。ご教授いただければ幸いです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
特になし。反映されないということがエラーといえばエラーです。
該当のソースコード
GoogleAppScript
1function setTrello(){ 2 3 var ssheet = SpreadsheetApp.getActiveSpreadsheet(); 4 var sheet = ssheet.getSheetByName('改修後'); 5 6 //変数を設定する 7 var alldata = sheet.getRange(sheet.getLastRow(), 3 ,1 ,sheet.getLastColumn()).getValues(); 8 9 //--本番日程 10 var date = new Date(alldata[0][5]) 11 //--マスター発送日 12 var depdate = new Date(alldata[0][11]) 13 14 15 const trelloKey = "XXXXX";//keyを入力してください 16 const trelloToken = "XXXXXX";//tokenを入力してください 17 const userName = "kodanosuke";//user nameを入力してください 18 const boardID = 'XXXXXXXX' 19 20 //リストのIDと名前の一覧を取得 21 var url = 'https://trello.com/1/boards/' + boardID + '/lists?key=' + trelloKey + '&token=' + trelloToken 22 var res = UrlFetchApp.fetch(url, {'method':'get'}); 23 var list = JSON.parse(res.getContentText()); //jsonとして保存します 24 25 var listNum = list.length; 26 27 28 //---torelloのカード一覧を取得し、必要な情報だけ抜き出す 29 var cards = []; 30 31 var count = 0 32 for(var j = 0;j < listNum;j++){ 33 var url = "https://trello.com/1/lists/" + list[j]['id'] + "/cards?key=" + trelloKey + "&token=" + trelloToken; 34 var res = UrlFetchApp.fetch(url, {'method':'get'}); 35 var card = JSON.parse(res.getContentText()); 36 var cardNum = card.length 37 38 //締切リストを作成する 39 var due = new Array(cardNum) 40 due[4] = new Date(date.setDate(date.getDate() -14) ) 41 due[5] = new Date(date.setDate(date.getDate() -7) ) 42 due[6] = new Date(date.setDate(date.getDate() -7) ) 43 due[7] = new Date(date.setDate(date.getDate() +1) ) 44 due[8] = new Date(date.setDate(date.getDate() +1) ) 45 due[9] = new Date(date.setDate(date.getDate() +3) ) 46 due[10] = new Date(depdate.setDate(depdate.getDate() -14) ) 47 due[11] = new Date(depdate.setDate(depdate.getDate() -7) ) 48 due[12] = new Date(depdate.setDate(depdate.getDate() -3) ) 49 due[13] = new Date(depdate.setDate(depdate.getDate() -7) ) 50 due[14] = new Date(depdate.setDate(depdate.getDate() -14) ) 51 due[15] = new Date(depdate.setDate(depdate.getDate()) ) 52 due[24] = new Date(date.setDate(date.getDate() -14) ) 53 due[25] = new Date(date.setDate(date.getDate() -7) ) 54 due[26] = new Date(date.setDate(date.getDate() +1) ) 55 due[27] = new Date(date.setDate(date.getDate() +21) ) 56 due[28] = new Date(date.setDate(date.getDate() ) ) 57 due[31] = new Date(date.setDate(date.getDate() -14) ) 58 due[32] = new Date(date.setDate(date.getDate() -7) ) 59 due[33] = new Date(date.setDate(date.getDate() +1) ) 60 due[34] = new Date(date.setDate(date.getDate() +3) ) 61 due[35] = new Date(depdate.setDate(depdate.getDate() -21) ) 62 due[36] = new Date(depdate.setDate(depdate.getDate() -14) ) 63 due[37] = new Date(depdate.setDate(depdate.getDate() -7) ) 64 due[38] = new Date(date.setDate(date.getDate() -21) ) 65 due[43] = depdate 66 due[44] = new Date(depdate.setDate(depdate.getMonth() + 1 ) ) 67 due[45] = new Date(date.setDate(date.getDate() -21) ) 68 due[46] = new Date(date.setDate(date.getDate() +3) ) 69 due[47] = new Date(date.setDate(date.getDate() +21) ) 70 due[48] = new Date(date.setDate(date.getDate() -7) ) 71 72 //必要なデータのKeyを指定して値を取得する 73 for(var i = 0;i < cardNum;i++){ 74 75 count = count+1 76 77 var name = card[i]['name']; 78 var idMembers = card[i]['idMembers']; 79 var dateLastActivity = card[i]['dateLastActivity']; 80 var shortUrl = card[i]['shortUrl']; 81 var idChecklists = card[i]['idChecklists'] 82 var desc = card[i]['desc'] 83 84 //取得したここのデータをまとめて、ひとつのカード情報としてまとめる 85 var card1 = [list[j]['name'],name, idMembers, dateLastActivity, shortUrl,idChecklists,due[count]]; 86 87 cards.push(card1) 88 89 } 90 91 92 93 } 94 95 //---trelloリストを作成する 96 var boardIDto = '5c011c070429520381ec50c9'; 97 var name_group = alldata[0][0] 98 var urlSetList = 'https://api.trello.com/1/boards/' + boardIDto + '/lists/?key=' + trelloKey + '&token=' + trelloToken; 99 var optionsList = { 100 'method' : 'post', 101 'muteHttpExceptions' : true, 102 'payload' : { 103 'name' : name_group + '様向けのリスト', 104 'pos' : 'top' 105 } 106 } 107 UrlFetchApp.fetch(urlSetList, optionsList); 108 109 //---trelloカードを作成する 110 var on = 1 111 112 113 var urlGetList = 'https://trello.com/1/boards/' + boardIDto + '/lists?key=' + trelloKey + '&token=' + trelloToken 114 var resGetList = UrlFetchApp.fetch(urlGetList, {'method':'get'}); 115 var listlist = JSON.parse(resGetList.getContentText()); //jsonとして保存します 116 117 var plans = sheet.getRange(sheet.getLastRow(), sheet.getLastColumn()-6, 1, 7).getValues() 118 var plansNum = [22,7,15,1,1,1,1] 119 var header = ['コンサート撮影テンプレート','コンサート写真撮影テンプレート','コンサート録音テンプレート','スコアディレクター','高音質録音パック','写真撮影プラン','印刷物セット'] 120 121 var nande = [plans[0][0] == 'on'] 122 for(var rep = 0;rep<7;rep++){ 123 if(rep == 0){ 124 if(plans[rep][0] == 'on'){ 125 for(var l = 0;l<plansNum[0];l++){ 126 var listId = listlist[0]['id']; 127 var url = 'https://api.trello.com/1/cards/?key=' + trelloKey + '&token=' + trelloToken; 128 var options = { 129 'method' : 'post', 130 'muteHttpExceptions' : true, 131 'payload' : { 132 'name' : cards[l][1], 133 'desc' : 'This is test.', 134 'due' : cards[l][6], 135 'idList' : listId, 136 'urlSource' : '', 137 'idMembers':cards[l][5][0], 138 'idChecklists':cards[l][2][0] 139 } 140 } 141 142 Logger.log(UrlFetchApp.fetch(url, options)); 143 } 144 145 } 146 } 147 }
試したこと
配列の受け渡し方を変えたりしましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/28 14:08
退会済みユーザー
2019/01/28 17:09