0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GASでtrelloのcardを自動投稿するスクリプト

0
Last updated at Posted at 2020-05-23

google formやslackワークフロー(有料プラン)、非常に便利ですよね。

ただ、申請を受ける側には必ずタスクが発生します。
そこで、今回はGASの中で扱うデータをそのままtrello カードとして投稿する方法を説明します。

アプローチとしては、GASからtrelloのAPIにリクエストを投げるという形です。

まずtrelloにユーザー登録の上、
予めサンプルとして「負債解消プロジェクト」というリストを登録しておいて下さい。

次に、APP-KEYをこちらから取得して下さい。

こちらのapp-keyは忘れないようにメモしておいて下さい。
今回は便宜上
abcd1234abcd1234abcd4321abcd1234abcd4321abcd1234abcd4321
とします。

その次にtokenです。

以下のURLの****の部分に先程のapp-keyを代入して下さい。

https://trello.com/1/authorize?key=********************************&expiration=never&response_type=token&scope=read,write,account

具体的にサンプルの値で代入するとこんな感じですね。

https://trello.com/1/authorize?key=abcd1234abcd1234abcd4321abcd1234abcd4321abcd1234abcd4321&expiration=never&response_type=token&scope=read,write,account

そうするとこのような画面が出ます

Screen Shot 2020-05-23 at 2.43.20.png

下にスクロールして「許可」を押してください。

そうすると、64文字のトークンが取得できます。こちらのキーとトークンは忘れないようにメモしておいてください。

最後にUserIDです。これは画面右上のアイコンから
()の中の文字列(今回の場合だと user12345678) を取得するだけですね。

Screen Shot 2020-05-23 at 2.48.23.png

GASでTrelloに登録するには、HTTPリクエストを送ります。
まずはボードの情報を取得してみましょう。

スクリプトエディタに、こちらを記載して実行しましょう。
GASが予め用意してくれているUrlFetchAppオブジェクトのfetchメソッドに、リクエストURLとオプションを記載することでリクエストを送ることができます。

function getBoard() {
  var trelloKey   = "XXXXXX";//32文字のkey
  var trelloToken = "XXXXXX";//64文字のtoken
  var userName = "user12345678";//user nameを入力してください
 
  var url = 'https://trello.com/1/members/' + userName + '/boards?key=' + trelloKey + '&token=' + trelloToken + '&fields=name';
  response = UrlFetchApp.fetch(url, {'method':'get'});
  console.log(response);
}

▶(実行)して、メニューの表示をクリック、「ログ」を見ると、
こちらでBoard IDが取得できます。

Screen Shot 2020-05-23 at 3.26.31.png

次に、リストIDを取得します。先程「負債解消プロジェクト」と追加した部分ですね。

function getListId() {
  var trelloKey   = "XXXXXX";//keyを入力してください
  var trelloToken = "XXXXXX";//tokenを入力してください
  var userName = "user12345678";//ユーザ名を入力してください
  var url = 'https://trello.com/1/members/' + userName + '/boards?key=' + trelloKey + '&token=' + trelloToken + '&fields=name';
  res = UrlFetchApp.fetch(url, {'method':'get'});
  console.log(res);
}res);
}


こちらも、▶(実行)して、メニューの表示をクリック、「ログ」を見ると、
こちらでList IDが取得できます。idBoardではないので注意して下さい。

Screen Shot 2020-05-23 at 3.57.16.png
function addList(){
  var boardId = '*****************';//関数getBoardで取得したBoard ID
  var url = 'https://api.trello.com/1/boards/' + boardId + '/lists/?key=' + trelloKey + '&token=' + trelloToken;
  var options = {
    'method' : 'post',
    'muteHttpExceptions' : true,
    'payload' : {
      'name' : '作業中',//リストの名前
      'pos' : 'top'
    }
  }
  console.log(UrlFetchApp.fetch(url, options));
 }

最後にカードです。


function getCardId() {
  var trelloKey   = "XXXXXX";//keyを入力してください
  var trelloToken = "XXXXXX";//tokenを入力してください
  var listId = "XXXX";//リストIDを入力してください
  var url = "https://trello.com/1/lists/" + listId + "/cards?key=" + trelloKey + "&token=" + trelloToken + "&fields=name";
 
  res = UrlFetchApp.fetch(url, {'method':'get'});
  console.log(res);
}


最後に、カードの登録です。

 function addCard(){
  var listId = '*************';//前で取得したリストid
  var options = 'https://api.trello.com/1/cards/?key=' + trelloKey + '&token=' + trelloToken;
  var hoge = {
    'method' : 'post',
    'muteHttpExceptions' : true,
    'payload' : {
      'name'      : 'Test',//タイトル
      'desc'      : 'タスク詳細',//内容
      'due'       : '',//締め切り
      'idList'    : listId,//リストid
      'urlSource' : ''
    }
  }
  console.log(UrlFetchApp.fetch( url, options ));
  }



こちらでtrelloにイベント発火時にリアルタイムで登録ができるようになります。
転機の手間がなくなり、転記漏れも無くなりました。

ぜひ試してみて下さい!

参考文献

Google Apps ScriptでTrelloのリスト一覧とカード一覧を取得する
https://tonari-it.com/gas-get-trello-card-list/

TrelloのListにGasからCardを追加する
https://qiita.com/funise/items/202beba3e90e8af8c131

0
4
0

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
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?