はじめに
かなり後半になってしまって気づいてしまったワニですが、右クリックメニューでリスト(カードを含む)のコピーは出来ますワニ🐊なので、このスクリプトは完全な下位互換ワニ。。
やったこと
カードを含むリストの完全なコピーを作成してみたかったそれだけワニ🐊
完全な下位互換たる所以
・カード情報は一部しかコピーできません。ワニがサボっているだけです。。
・コピーされたリストは"コピー"という名前になります。右クリックメニューはちゃんとコピー元のリスト名です。
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
・コピー対象のリストID
このあたりの記事を参考に調べましょう。
https://tonari-it.com/gas-get-trello-card-list/
ソースコード
これがコードワニ🐊
function myFunction() {
var trelloKey = "trelloのAPIキー";
var trelloToken = "trelloのトークン";
var trelloBoard = "コピー操作を行うボードID";
var trelloCopyList = "コピー対象のリストID";
// カード情報をjson形式で取得
var boardUrl = "https://api.trello.com/1/boards/" + trelloBoard + "/lists/?key=" + trelloKey + "&token=" + trelloToken;
var listUrl = "https://trello.com/1/lists/"+trelloCopyList+"/cards?key="+trelloKey+"&token="+trelloToken;
var getListRes = UrlFetchApp.fetch(listUrl, {'method':'get'});
var getListJson = JSON.parse(getListRes.getContentText());
// 作成するリスト情報を設定
var setListData = {
'method' : 'post',
'muteHttpExceptions' : true,
'payload' : {
'name' : "コピー",
'pos' : 'bottom'
}
}
// 作成したリストのリストIDを取得する
var setListResponse = UrlFetchApp.fetch(boardUrl, setListData);
var setListJson = JSON.parse(setListResponse.getContentText());
var setListId = setListJson['id'];
// 追加したリストにカードを足していく
var cardUrl = "https://trello.com/1/cards?key="+trelloKey+"&token="+trelloToken;
for(var i = 0; i < getListJson.length; i++)
{
// 作成するリスト情報を設定
var setCardData = {
'method' : 'post',
'muteHttpExceptions' : true,
'payload' : {
'name' : getListJson[i]['name'],
'desc' : getListJson[i]['desc'],
'due' : '',
'idList' : setListId,
'urlSource' : ''
}
}
// カード作成
UrlFetchApp.fetch(cardUrl, setCardData);
}
}
出力結果
(このように"普通のハンバーガー"リストをコピーすることが出来るワニ🐊)
所感
・たとえ車輪の再発明となろうとも、ソースを公開することに意味があると思うワニ🐊
・この記事を参考にさせて頂きましたワニ🐊
https://qiita.com/Andysumi/items/eb281c3f0d4d30aa8a88