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);
};
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme