【GAS】Trelloのリスト内にあるカードを自動でアーカイブする方法
Trelloの「完了」リストにあるカードを手動でアーカイブするのが面倒になったため、Google Apps Scriptを利用して自動化した。
手順
Trelloの各情報を取得する
GASでTrelloを操作するために必要となる「APIキー」・「トークン」・「リストID」を取得する。
APIキー
下記のページから取得する。
トークン
下記のURLをブラウザで開く。( ※ <APIキー>
は置き換える )
https://trello.com/1/authorize?key=<apiキー>&name=&expiration=never&response_type=token&scope=read,write
すると「アプリの利用を許可するページ」が表示されるので、許可する。その後、表示されたページからトークンを取得する。
リストID
まず、下記のURLをブラウザで開き、表示されたページから対象となる「ボードID」を取得する。( ※ <APIキー>
、<トークン>
は置き換える )
https://trello.com/1/members/me/boards?key=<apiキー>&token=<トークン>
次に下記のURLをブラウザで開く。( ※ <ボードID>
、<APIキー>
、<トークン>
は置き換える )
https://trello.com/1/boards/<ボードID>/lists?key=<apiキー>&token=<トークン>&fields=name
後は表示されたページから対象の「リストID」を取得する。
GASでプロジェクトを作成する
スクリプトプロパティにTrelloの各情報を設定する
スクリプトプロパティにTrelloの各情報を設定する。( ここではプロパティ名をAPI_KEY
、TOKEN
、LIST_ID
とする )
リスト内のカードをアーカイブする関数を定義する
下記の関数を定義する。
function archiveCardsInList() {
const PROPERTIES = PropertiesService.getScriptProperties().getProperties();
const DATAS = getCardDatasInList(
PROPERTIES.API_KEY,
PROPERTIES.TOKEN,
PROPERTIES.LIST_ID
);
archiveCardsByDatas( DATAS, PROPERTIES.API_KEY, PROPERTIES.TOKEN );
}
function getCardDatasInList( apiKey, token, listId ) {
const URL =
'https://api.trello.com/1/lists/' + listId + '/cards'
+ '?key=' + apiKey
+ '&token=' + token
+ '&fields=id,name,dateLastActivity,shortUrl,desc'
;
const RESPONSE = UrlFetchApp.fetch( URL );
const DATAS = JSON.parse( RESPONSE.getContentText( 'UTF-8' ) );
return DATAS;
}
function archiveCardsByDatas( datas, apiKey, token ) {
datas.forEach( function( data ) {
const ID = data["id"];
const URL = 'https://api.trello.com/1/cards/' + ID;
const PAYLOAD = { 'key': apiKey, 'token': token, 'closed': 'true', };
const OPTIONS = { 'method': 'put', 'payload': PAYLOAD, };
UrlFetchApp.fetch( URL, OPTIONS );
} );
}
トリガーを設定する
archiveCardsInList
関数を定期的に呼び出すようにトリガーを設定する。
これでTrelloのリスト内にあるカードが自動でアーカイブされる。