LoginSignup
4
11

More than 5 years have passed since last update.

Trelloのすべてのカードの情報をスプレッドシートに出力する(ひとまず版)

Posted at

やったこと

プロジェクト管理をtrelloで行い、振り返りを行うこともあるワニね。
trello上で見るのも良いですが、データをスプレッドシートですべてを見たい・・ということもあるでしょうワニ。そんな時の為にGASで作ってみたワニ🐊

ひとまず版とした所以

・jsonデータの要素をそのままスプレッドシートに履いているので、生データ過ぎる要素がある。
・アーカイブされているものは現在取れません。。なのでタスク終了=アーカイブとしているボードではあまり有効ではないです。

GAS作成の上で必要なもの

・trelloのAPIキー
 https://trello.com/app-key
・trelloのトークン
 https://trello.com/app-key
 ページ内の"あなたは手動でTokenを作られます"のToken部分のリンクをクリック→認証
・カード一覧を取得したいboardID
 boardIDは実際にボードを開いたアドレスの以下XXXXXXの部分になります。
 https://trello.com/b/XXXXXX/YYYYYY
・出力するGoogleスプレッドシートのID
 スプレッドシートのIDは、実際にスプレッドシートを開いたアドレスの以下ZZZZZZの部分になります。
 https://docs.google.com/spreadsheets/d/ZZZZZZ/edit#gid=0
・出力するGoogleスプレッドシートのシート名

用意するものが多そうに見えますが、1分以内で集められます。スプレッドシートは新規作成したものでOK。

ソースコード

これがコードワニ🐊

GASのソース.
function myFunction() {
  var trelloKey   = "trelloのAPIキー";
  var trelloToken = "trelloのトークン";
  var trelloBoard = "trelloのボードID";
  var sheetId = "スプレッドシートのID";
  var sheetName = "スプレッドシート名";
  var cardItem = ['id',
                  'badges',
                  'checkItemStates',
                  'closed',
                  'dateLastActivity',
                  'desc',
                  'descData',
                  'due',
                  'dueComplete',
                  'email',
                  'idAttachmentCover',
                  'idBoard',
                  'idChecklists',
                  'idLabels',
                  'idList',
                  'idMembers',
                  'idMembersVoted',
                  'idShort',
                  'labels',
                  'manualCoverAttachment',
                  'name',
                  'pos',
                  'shorLink',
                  'shortUrl',
                  'subscribed',
                  'url'
            ];

  // カード情報をjson形式で取得
  var cardUrl = "https://trello.com/1/boards/"+trelloBoard+"/cards?key="+trelloKey+"&token="+trelloToken+"&fields=id,badges,checkItemStates,closed,dataLastActivity,desc,descData,due,dueComplete,email,idAttachmentCover,idBoard,idChecklists,idLabels,idList,idMembers,idMembersVoted,idShort,labels,manualCoverAttachment,name,pos,shortLink,shortUrl,subscribed,url";
  var cardRes = UrlFetchApp.fetch(cardUrl, {'method':'get'});  
  var cardJson = JSON.parse(cardRes.getContentText()); 

  // シート情報を取得
  var spreadSheet = SpreadsheetApp.openById(sheetId);
  var sheet = spreadSheet.getSheetByName(sheetName);
  spreadSheet.duplicateActiveSheet();

  // 見出し出力
  for(var i = 0; i < cardItem.length; i++)
  {
    sheet.getRange(1,2+i).setValue(cardItem[i]);
  }

 // カード情報取得  
  for(var i = 0; i < cardJson.length; i++)
  {
    var writeRow = 2;

    sheet.getRange(2+i,1).setValue((i+1));

    for(var j = 0; j < cardItem.length; j++)
    {
      var getElement = cardJson[i][cardItem[j]];
      sheet.getRange(2+i,writeRow).setValue(getElement);
      writeRow++;
    }
  }

}

出力結果

キャプチャ.PNG

*IDは伏せていますワニ。
*それ以外の情報もちゃんと取れているワニ。I列以降。

所感

・カード総数の調べ方がわからず、頓挫しそうになりましたが、json.lengthであっさり解決してしまったワニ🐊
・2018/6/23現在のカード情報になりますワニ。developerページを参照しましたワニ🐊
 https://developers.trello.com/reference/#card-object

4
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
11