ソフトモヒカンの勉強と開発の記録

サービス開発を目指して、プログラミングの勉強とコーディングをしています。本ブログは、そのログになります!

【GAS】Trelloの特定のリストのカードのコメント情報を取得する

Google Apps Scriptで、Trelloの特定リストにあるカードのコメント情報を取得して、ログとして出力します!

開発環境

macOS High Sierra(バージョン10.13.5)
Google Drive
Sublime Text

前提条件とやりたいこと

GAS、Trelloキー、Trelloトークンの取得やTrelloとは何ぞやということについては、今回は割愛します。
また別記事で書けたら書きたいと思います。


今回は、上述を既知として、Trelloの特定のリストにあるカードのコメント全ての中から、Google DriveのドキュメントファイルのURLだけを検索・抽出することを試みます。
→結果から述べると、最後の検索・抽出だけ出来ませんでした・・・。

プログラム

function draftList() {
  var trelloKey   = "";//trello key
  var trelloToken = "";//trello token
  var listId = "";//リストID
  var cardUrl;//特定リストのカード群へアクセス
  //var boardId = "";//ボードID
  //var userName = "";//ユーザー名
  cardUrl = "https://trello.com/1/lists/" + listId + "/cards?key=" + trelloKey + "&token=" + trelloToken;
  
  var cardList;//特定リストのカード一覧
  var cardJson;//カード一覧のjson形式
  var cardMaxRows;//格納されているカード数
  cardList = UrlFetchApp.fetch(cardUrl, {'method':'get'});
  cardJson = JSON.parse(cardList.getContentText());
  cardMaxRows = cardJson.length; 
  
  var cardId = [];//各カードのID
  var cardName = [];//各カードの名前
  var commentUrl = [];//各カードのアクティビティ情報へアクセス
  var commentList = [];//各カードのアクティビティ情報
  var commentJson = [];//各カードのアクティビティ情報のjson形式
  var commentMaxRows = [];//各カードのアクティビティ情報の配列数
  var comment_tmp = [];//temporary array
  var documentUrl = [];//ドキュメントファイルのあるDriveのURL
  var pattern = /https\:\/\/docs\.google\.com\/document\/.*\/edit/;//DriveのURLの検索パターン
  for(var i=0; i<cardMaxRows; i++){
    cardId[i] = cardJson[i].id;
    cardName[i] = cardJson[i].name;
    //カードごとにアクセス
    commentUrl[i] = "https://trello.com/1/cards/" + cardId[i] + "/actions?key=" + trelloKey + "&token=" + trelloToken;
    commentList[i] = UrlFetchApp.fetch(commentUrl[i], {'method':'get'});
    commentJson[i] = JSON.parse(commentList[i].getContentText());
    commentMaxRows[i] = commentJson.length; //格納されているコメントの行数を取得
    Logger.log(commentJson[i]);
    //documentUrl[i] = commentJson[i].match(pattern);
    //Logger.log(documentUrl[i]);
  } 
}

結果

ソースコード内のcommentJsonには、カード情報がjson形式できちんと格納されてました。


ただ、その下のコメントアウトにある関数matchを叩くとエラーが返ってきてしまいます(そこが動けば、ミッションコンプリートだったんですけどねぇ・・・)。
ですので、documentUrlへの検索・抽出結果の格納には失敗しました。


もっと、GASについても勉強していきたいと思います!