31
33

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.

Googleフォームからトレロのカード自動作成

Last updated at Posted at 2019-04-06

#はじめに
けんてぃです!Qiita初投稿になります!!
Googleフォームを送信すると、自動でトレロにカードが作られる、というものを作りました。いちいち面倒くさい処理しなくていい!!やったあ(参考記事:http://bit.ly/2WRzOJS)

#完成イメージ
Googleフォーム送信→スプレッドシートに反映→トレロにカード追加されている。
ezgif.com-crop (2).gif
手順1:Googleフォームの作成
手順2:カード作成するスクリプト作る
手順3:フォーム送信時に手順2の実行

##1.Googleフォーム作成
スプレッドシートからフォームを作成(ツール > フォームを作成)。今回はこのように作りました。
スクリーンショット 2019-04-07 3.19.49.png

##2.スクリプト
トレロに自動でカードが作られるようにコードを書きます。参考記事とほぼ一緒です。
スプレッドシートからGASを開き、(ツール > スクリプトエディタ)
スクリーンショット 2019-04-07 3.45.34.png
コピペする


// ユーザー名
var user_name = 'ユーザー名';

// APIキーとトークン
var api_key = 'APIキー';
var api_token = 'APIトークン';

// ボードID
var board_id = 'ボードID';

// リストID
var list_id = 'リストID';

// カード名の列番号
var title_column_no = 2;
// カード詳細説明の列番号
var description_column_no = 3;

function getBoards() {
  var url = 'https://api.trello.com/1/members/' + user_name + '/boards?key=' + api_key + '&token=' + api_token + '&fields=name';
  Logger.log(UrlFetchApp.fetch(url, {'method':'get'}));
}

function getlists() {
  var url = "https://trello.com/1/boards/" + board_id + "/lists?key=" + api_key + "&token=" + api_token + "&fields=name";
  Logger.log(UrlFetchApp.fetch(url, {'method':'get'}));
}

function getLabels() {
  var url = "https://trello.com/1/boards/" + board_id + "/labels?key=" + api_key + "&token=" + api_token + "&fields=name";
  Logger.log(UrlFetchApp.fetch(url, {'method':'get'}));
}

function addTrelloCard() {

  // 選択しているセルの開始行番号を取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var upper_left_cell = sheet.getActiveCell();
  var start_row = upper_left_cell.getRow();

  // 選択しているセルの行数を取得
  var range = SpreadsheetApp.getActiveRange();
  var rows = range.getNumRows();

  // カード作成
  for (var i = 0; i < rows; i++) {
    var row = start_row + i;
    var card_title = sheet.getRange(row, title_column_no).getValue();
    var card_description = sheet.getRange(row, description_column_no).getValue();
    var url = 'https://api.trello.com/1/cards/?key=' + api_key + '&token=' + api_token;
    var options = {
      'method' : 'post',
      'muteHttpExceptions' : true,
      'payload' : {
        'name'      : card_title,
        'desc'      : card_description,
        'due'       : '',
        'idList'    : list_id,
        // 'idLabels'  : 'ラベルを使用したい場合はgetLabelsを実行してよしなに',
        'urlSource' : ''
      }
    }
    var response = UrlFetchApp.fetch(url, options);
    // 作成したカードのURLをセルに出力したい場合は下記コメントアウトはずしてよしなに。
    // var response_data = JSON.parse(response.getContentText());
    // sheet.getRange(row, 3).setValue(response_data['shortUrl']);
  }
}

###準備
ユーザー名=user_name(Trelloのプロフィールから確認)

APIキー=リンク先のキー:(https://trello.com/app-key)

トークン=リンク先のToken:(https://trello.com/app-key) (手動で発行ボタン)

ボードID=関数を選択 → getBoardsを実行してログからコピペ(表示 > ログ)

リストID=関数を選択 → getListsを実行してログからコピペ(表示 > ログ)

※認証画面で行き詰まったらここ(参考記事:http://bit.ly/2Kf2k6z)

##3.仕上げ
最後に、フォームが送信された時、トレロにカードを作成できるようにします。
トリガーの編集をします(編集 > 現在のプロジェクトのトリガー)
画面右下にあるトリガーを追加ボタンを押し、画像のような設定にして保存します。
スクリーンショット 2019-04-07 3.31.41.png

#さいごに
これでGoogleフォームを送信すると自動でトレロにカード追加されたのではないでしょうか?
@naoqoo2さんの記事を大変参考にさせていただきました。ありがとうございます。

31
33
3

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
31
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?