我确信这是非常简单的,但我现在一直在打击和关闭它一周,并且无处可去。 我将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,这样我就可以麻烦他们处理被遗弃的卡片堵塞我的名单。
感激地收到任何和所有建议
答案 0 :(得分:2)
使用join
尝试此代码rows.push([data.id,
data.name,
data.idList,
data.dateLastActivity,
data.idMembers.join(),
data.idLabels,
data.url,
]);
这对我有用,给出了逗号分隔的成员列表: 5467844a ...,52cd1e6d27 ...,55bf2a090 ...