【发布时间】:2016-12-04 18:11:24
【问题描述】:
我确信这非常简单,但我已经断断续续地敲打了一个星期,但一无所获。 我将 Trello 卡的详细信息提取到 Google 表格中,最终目的是向给定列表中的任何 Trello 卡的成员发送电子邮件,该列表自上次活动以来已超过一定天数。
我可以使用 Trello 从 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++) {
但这并没有帮助,我不确定它是否符合解决方案。我什至不确定问题出在代码中,而不是 google sheet 对逗号分隔值的处理。
在电子表格中,我不太关心(目前)我是否得到重复的卡片,每个卡片上都有一个成员 ID,每个成员 ID 的附加列或所有成员 ID 一起放在一个单元格中,我只是想要所有会员ID,这样我就可以麻烦他们处理他们的废弃卡片堵塞了我的列表。
感谢所有建议
【问题讨论】:
标签: javascript arrays google-apps-script google-sheets trello