前提・実現したいこと
Googleスプレッドシートに作成した情報を選択し、スプレットシートに使いしたメニューを操作して、
Trelloにカード作成ができるようにしたいです。
スプレッドシートのメニューからaddTrellocardを実行するとGAS上では問題ないのですが、
Trelloにカードは追加されません。
発生している問題・エラーメッセージ
エラーメッセージは表示されないが、trelloにはカードが追加されない
該当のソースコード
1// ユーザー名 2// URLにも使用されている 3var user_name = '********'; 4 5// APIキーとトークン 6// https://trello.com/app-key 7// 上記にアクセスしてKeyとTokenを取得する。※Tokenは『generate a Token.』から作成する。 8var api_key = '********'; 9var api_token = '********'; 10 11// ボードID 12// getBoardsを実行して取得する 13var board_id = '********'; 14 15// リストID 16// getListsを実行して取得する 17var list_id = '********'; 18 19// カード名の列番号 20var listid_column_no = 3; 21// カード名の列番号 22var title_column_no = 4; 23// カード詳細説明の列番号 24var description_column_no = 5; 25// 〆切の列番号 26var due_column_no = 6; 27// ラベルの列番号 28var labelid_column_no = 8; 29// ラベルの列番号 30var memberid_column_no = 10; 31 32function getBoards() { 33 var url = 'https://api.trello.com/1/members/' + user_name + '/boards?key=' + api_key + '&token=' + api_token + '&fields=name'; 34 Logger.log(UrlFetchApp.fetch(url, {'method':'get'})); 35} 36 37function getlists() { 38 var url = "https://trello.com/1/boards/" + board_id + "/lists?key=" + api_key + "&token=" + api_token + "&fields=name"; 39 Logger.log(UrlFetchApp.fetch(url, {'method':'get'})); 40} 41 42function getLabels() { 43 var url = "https://trello.com/1/boards/" + board_id + "/labels?key=" + api_key + "&token=" + api_token + "&fields=name"; 44 Logger.log(UrlFetchApp.fetch(url, {'method':'get'})); 45} 46 47function getMembers() { 48 var url = "https://trello.com/1/boards/" + board_id + "/members?key=" + api_key + "&token=" + api_token; 49 var response = UrlFetchApp.fetch(url); 50 var json = JSON.parse(response.getContentText()); 51 Logger.log(json); 52} 53 54function addTrelloCard() { 55 56 // 選択しているセルの開始行番号を取得 57 var ss = SpreadsheetApp.getActiveSpreadsheet(); 58 var sheet = ss.getActiveSheet(); 59 var upper_left_cell = sheet.getActiveCell(); 60 var start_row = upper_left_cell.getRow(); 61 62 // 選択しているセルの行数を取得 63 var range = SpreadsheetApp.getActiveRange(); 64 var rows = range.getNumRows(); 65 66 // 確認ダイアログ 67 var message = ''; 68 var start_card_title = sheet.getRange(start_row, title_column_no).getValue(); 69 message += start_card_title; 70 if (rows > 1) { 71 message += ' など' + rows + '枚'; 72 } 73 var result = Browser.msgBox('カードを作成します。よろしいですか?', message, Browser.Buttons.OK_CANCEL); 74 75 if (result == 'cancel') { 76 return; 77 } 78 79 // カード作成 80 for (var i = 0; i < rows; i++) { 81 var row = start_row + i; 82 var card_list = sheet.getRange(row, listid_column_no).getValue(); 83 var card_title = sheet.getRange(row, title_column_no).getValue(); 84 var card_description = sheet.getRange(row, description_column_no).getValue(); 85 var card_label = sheet.getRange(row, labelid_column_no).getValue(); 86 var card_due = sheet.getRange(row, due_column_no).getValue(); 87 var card_member = sheet.getRange(row, memberid_column_no).getValue(); 88 89 var url = 'https://api.trello.com/1/cards/?key=' + api_key + '&token=' + api_token; 90 var options = { 91 'method' : 'post', 92 'muteHttpExceptions' : true, 93 'payload' : { 94 'name' : card_title, 95 'desc' : card_description, 96 'due' : card_due, 97 'idList' : card_list, 98 'idLabels' : card_label, 99 'idMembers' : card_member, 100 'urlSource' : '' 101 } 102 } 103 var response = UrlFetchApp.fetch(url, options); 104 // 作成したカードのURLをセルに出力したい場合は下記コメントアウトはずしてよしなに。 105 // var response_data = JSON.parse(response.getContentText()); 106 // sheet.getRange(row, 3).setValue(response_data['shortUrl']); 107 } 108} 109 110function onOpen() { 111 // メニューバーにカスタムメニューを追加 112 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 113 var entries = [ 114 {name : "addTrelloCard" , functionName : "addTrelloCard"}, 115 ]; 116 spreadsheet.addMenu("GAS", entries); 117}
試したこと
Spreadsheetの画面からも、script editorの画面からも幾度かtryし、
いずれも実行は"completed"となっているのですが、trello上では何も変化がありません。
エラーの箇所がつかめておらず大変不明瞭な質問になりますが、何卒宜しくお願い致します。
追記
Automate.ioでも試行してみたところ、
下記のようにsample dataを入力する部分では正常に実行されるのですが、
Spreadsheetの読み取りとなると下記のようにエラーが起こります。
あなたの回答
tips
プレビュー