将Trello卡成员拉入谷歌表

时间:2016-07-29 23:19:05

标签: javascript arrays google-apps-script google-sheets trello

我确信这是非常简单的,但我现在一直在打击和关闭它一周,并且无处可去。 我将Trello卡的详细信息提取到Google表格中,最终目的是向给定列表中的任何Trello卡的成员发送一封电子邮件,该列表超过了自上次活动以来的特定天数。< / p>

我可以使用

从Trello获取卡片和相关字段
//get all cards from board   
var url = "https://api.trello.com/1/boards/<board id>/cards?filter=open&fields=name,idList,url,dateLastActivity,idMembers,idLabels&key=<key>&token=<token>";

var get = UrlFetchApp.fetch(url);

然后解析返回

//parse JSON 
var dataSet = JSON.parse(get);

我遇到的问题是,如果卡上有多个成员,则ID将作为逗号分隔列表返回到子阵列中,如下所示

{idMembers=[member_id, member_id, member_id], idLabels=[label_id], name=card_name, dateLastActivity=date, id=card_id, idList=list_id, url=https://trello.com/c/XXxxxXXxx/blahblahblahblahblahblah}

通过解析的JSON循环并将输出推送到新阵列,所有成员ID仍然在一起用于每张卡,但是当它们传递到电子表格时,只有第一个成员正在进行旅行。 代码

for (i = 0; i < dataSet.length; i++) {
data = dataSet[i];

rows.push([data.id, 
           data.name,
           data.idList,
           data.dateLastActivity,
           data.idMembers,
           data.idLabels,
           data.url,              
          ]);
}

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("SheetName");
var last_row = sheet.getLastRow();
var last_column = sheet.getLastColumn();
sheet.getRange(2,1,last_row,last_column).clear();  
dataRange = sheet.getRange(2, 1, rows.length, 7);
dataRange.setValues(rows);

我已尝试再次循环遍历数组以分离成员ID

for(j = 0; j < data.idMembers.length; j++) {

但这并没有帮助,我也不确定它是否在解决方案的正确路线上。我甚至不确定代码中的问题,也不确定谷歌工作表处理逗号分隔值。

在电子表格中,我不太关心(目前)我是否会重复使用每个成员ID的重复卡片,每个成员ID的附加列或所有成员ID在一个单元格中只想要所有的会员ID,这样我就可以麻烦他们处理被遗弃的卡片堵塞我的名单。

感激地收到任何和所有建议

1 个答案:

答案 0 :(得分:2)

使用join

尝试此代码
rows.push([data.id, 
           data.name,
           data.idList,
           data.dateLastActivity,
           data.idMembers.join(),
           data.idLabels,
           data.url,              
          ]);

这对我有用,给出了逗号分隔的成员列表: 5467844a ...,52cd1e6d27 ...,55bf2a090 ...