Skip to content

Instantly share code, notes, and snippets.

@tk-aria
Created May 11, 2020 15:27
Show Gist options
  • Select an option

  • Save tk-aria/9349e940afd61a88885970e6aa0bfeec to your computer and use it in GitHub Desktop.

Select an option

Save tk-aria/9349e940afd61a88885970e6aa0bfeec to your computer and use it in GitHub Desktop.
trelloからデータを取得してgoogleSpreadSheetに値を書き込むサンプル
//
// trelloの情報をgoogleSpreadSheetに書き込むサンプル
// ここでは ボードメンバーの名前とuserId, 指定したlistIDからカード名を書き込む
//
// author: tkaria
//
// Help:
// step1: apikeyとtokenの取得
// 以下ページを参考に「apikey」と「token」をメモしておく
// (https://qiita.com/isseium/items/8eebac5b79ff6ed1a180)
//
// step2: useridも確認する
// useridとはユーザ名 trelloのメンバーを確認した時に @hogehoge と書かれているほうが「userid」
//
// step3: trelloの「ボードId」, 取得したい「リストID」を調べる
// 下記関数を使うか,trello上のurlから調べる
//
// step4: spreadsheetidの取得
// スプレッドシートのURLの「https://docs.google.com/spreadsheets/d/」の後から「/」までの部分がシートのID
// ex) https://docs.google.com/spreadsheets/d/xxxxxxxxxxxx/edit#gid=0
//  上のURLで例えると xxxxxxxxxxxx の部分
//
// step5: googleAppsScriptから「test」関数を実行する
// -> 終わり
//
// ※注意点: test関数内でシート名を指定しているのでここは自分が使いたいシート名に変更する.
//
// 参考:
// SpreadSheetAPI: (https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet)
//
const USER_ID = 'ユーザーIDをここにペースト';
const API_KEY = 'APIキーをここにペースト';
const SERVER_TOKEN = 'トークンをここにペースト';
const SHEET_ID = 'SpreadSheetのIDをここにペースト';
function fetchUrlHelper(url) {
var res = UrlFetchApp.fetch(url);
var json = Utilities.jsonParse(res.getContentText());
Logger.log(json);
return json;
}
function getBoards() {
return fetchUrlHelper(`https://trello.com/1/members/${USER_ID}/boards?key=${API_KEY}&token=${SERVER_TOKEN}&fields=name`);
}
function getBoardLists(boradID) {
return fetchUrlHelper(`https://trello.com/1/boards/${boradID}/lists?key=${API_KEY}&token=${SERVER_TOKEN}&fields=name`);
}
function getListCards(listId) {
return fetchUrlHelper(`https://api.trello.com/1/lists/${listId}/cards?key=${API_KEY}&token=${SERVER_TOKEN}&fields=name`);
}
function getboardMembers(boardId) {
return fetchUrlHelper(`https://api.trello.com/1/boards/${boardId}/members?key=${API_KEY}&token=${SERVER_TOKEN}`);
}
function test() {
const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName('シート1');
const boardId = 'ボードIDをここにペースト';
const listId = 'リストIDをここにペースト';
var cards = getListCards(listId);
for(var index = 0; index < cards.length; index++){
console.log(cards[index].name);
sheet.appendRow([sheet.getLastRow(), cards[index].name ]);
}
sheet.appendRow([sheet.getLastRow()]);
var members = getboardMembers(boardId);
for(var index = 0; index < members.length; index++){
console.log(`${members[index].username} / ${members[index].fullName}`);
sheet.appendRow([sheet.getLastRow(), members[index].username, members[index].fullName ]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment