将 Trello 卡会员拉入 google sheet
Pulling Trello card members into google sheet
我敢肯定这非常简单,但我已经断断续续地用脑袋来反对它一个星期了,但一无所获。
我正在将 Trello 卡片的详细信息放入 google sheet 中,最终目的是向给定列表中任何 Trello 卡片的成员发送一封电子邮件,该列表自上次 activity.
我可以使用
从 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);
然后解析return
//parse JSON
var dataSet = JSON.parse(get);
我遇到的问题是,如果一张卡片的成员不止一个,那么 ID 在像这样的子数组中 returned 作为逗号分隔的列表
{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 仍然在一起,但是当它们传递给传播时 sheet 只有第一个成员正在旅行。
下面的代码
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 对逗号分隔值的处理。
在传播中sheet我不太关心(目前)我是否收到重复的卡片,每张卡片上都有一个会员 ID,每个会员 ID 都有一个额外的列,或者所有会员 ID 都在一起在一个单元格中,我只需要所有会员 ID,这样我就可以麻烦他们处理他们废弃的卡,这些卡塞满了我的列表。
非常感谢收到的所有建议
试试这个代码,使用 join:
rows.push([data.id,
data.name,
data.idList,
data.dateLastActivity,
data.idMembers.join(),
data.idLabels,
data.url,
]);
这对我有用,给出了成员列表,用逗号分隔:
5467844a...,52cd1e6d27...,55bf2a090...
我敢肯定这非常简单,但我已经断断续续地用脑袋来反对它一个星期了,但一无所获。 我正在将 Trello 卡片的详细信息放入 google sheet 中,最终目的是向给定列表中任何 Trello 卡片的成员发送一封电子邮件,该列表自上次 activity.
我可以使用
从 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);
然后解析return
//parse JSON
var dataSet = JSON.parse(get);
我遇到的问题是,如果一张卡片的成员不止一个,那么 ID 在像这样的子数组中 returned 作为逗号分隔的列表
{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 仍然在一起,但是当它们传递给传播时 sheet 只有第一个成员正在旅行。 下面的代码
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 对逗号分隔值的处理。
在传播中sheet我不太关心(目前)我是否收到重复的卡片,每张卡片上都有一个会员 ID,每个会员 ID 都有一个额外的列,或者所有会员 ID 都在一起在一个单元格中,我只需要所有会员 ID,这样我就可以麻烦他们处理他们废弃的卡,这些卡塞满了我的列表。
非常感谢收到的所有建议
试试这个代码,使用 join:
rows.push([data.id,
data.name,
data.idList,
data.dateLastActivity,
data.idMembers.join(),
data.idLabels,
data.url,
]);
这对我有用,给出了成员列表,用逗号分隔: 5467844a...,52cd1e6d27...,55bf2a090...