2

Ich bin mir sicher, dass dies wahnsinnig einfach ist, aber ich habe seit einer Woche meinen Kopf gegen ihn ein- und ausgeschaltet, und komme nirgendwohin. Ich ziehe Details von Trello-Karten in ein Google-Blatt mit dem ultimativen Ziel, eine E-Mail an die Mitglieder einer beliebigen Trello-Karte aus einer bestimmten Liste zu senden, die eine bestimmte Anzahl von Tagen seit der letzten Aktivität überschritten hat.Ziehen Trello-Kartenmitglieder in Google-Blatt

Ich bin in der Lage, die Karten und relevante Felder aus Trello zu bekommen

//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); 

verwenden und dann der Rückkehr zu analysieren

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

Das Problem, das ich erlebt habe, ist, dass, wo es mehr als ein Mitglied einer Karte die IDs werden als eine Komma getrennte Liste in einem Unter-Array wie folgt zurückgegeben

Wenn Sie durch geparste JSON-Dateien scrollen und die Ausgabe in ein neues Array verschieben, sind alle Mitglieds-IDs noch immer für jede Karte zusammen, aber wenn sie an die Tabelle übergeben werden, macht nur das erste Mitglied die Reise. -Code unten

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); 

Ich habe versucht, wieder durch das Array Looping das IDs Mitglied

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

zu trennen, aber das hat nicht geholfen und ich bin nicht sicher, dass es auch in der richtigen Richtung zu einer Lösung. Ich bin mir nicht einmal sicher, ob das Problem im Code liegt und nicht im Umgang mit kommagetrennten Werten.

In der Tabelle ist mir nicht wichtig (im Moment), ob ich wiederholt Karten mit einer einzigen Mitglieds-ID auf jedem, eine zusätzliche Spalte für jede Mitglieds-ID oder alle Mitglieds-IDs zusammen in einer einzigen Zelle ich gerade Ich möchte alle Mitglieds-IDs, damit ich sie belästigen kann, um mit ihren verlassenen Karten fertig zu werden, die meine Listen verstopfen.

Irgendwelche und alle eingegangenen Vorschläge dankbar

Antwort

2

diesen Code Versuchen Sie, mit join:

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

die für mich gearbeitet, Liste der Mitglieder gibt, durch Komma unterteilt: 5467844a ..., 52cd1e6d27. .., 55bf2a090 ...

+0

So einfach, danke! – Liam