Slackとスプレッドシートを連携したいです。
自分が考えている物は
①Slack上で「セット」というキーワードに反応
②入力して下さいというBOTが起動
③入力した値をスプレッドシートに記入という流れで考えています。
postSlack2を実行すると、チャンネルにundefined」と投稿されてしまいます。
どのように改善したらよいのでしょうか。
GAS
1function postSlack2(text){ 2 var url = "https://hooks.slack.com/xxxxxxxxxxxxxxxxxxxx"; 3 var options = { 4 "method" : "POST", 5 "headers": {"Content-type": "application/json"}, 6 "payload" : '{"text":"' + text + '"}' 7 }; 8 UrlFetchApp.fetch(url, options); 9} 10 11// 指定した時間にSlackにメッセージをポストする 12function doMessage(e) { 13 var message = "登録してください"; 14 postSlack2(message); 15} 16 17// Slackからの入力を受け取る 18function doPost(e) { 19 if (e.parameter.user_name === "slackbot") return; 20 21 var data = e.parameter.text.split(" "); 22 23 postSlack2("入力完了!"); 24} 25 26function record (data) { 27 var recordsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('登録シート'); // 記録シートを取得; 28 29 var lastrow = recordsheet.getLastRow(); 30 var recordrow = lastrow + 1; 31 32 var date = new Date(); 33 var formatdate = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd'); 34 var lastrecorddate = recordsheet.getRange("A" + lastrow).getValue(); 35 var formatlastrecorddate = Utilities.formatDate(lastrecorddate, 'Asia/Tokyo', 'yyyy/MM/dd'); 36 37 if (formatdate == formatlastrecorddate) { 38 recordrow = lastrow; 39 } 40 41 //最終行の次の行に入力する 42 recordsheet.getRange("A" + recordrow).setValue(formatdate); 43 recordsheet.getRange("B" + recordrow).setValue(data[0]); 44 recordsheet.getRange("C" + recordrow).setValue(data[1]); 45 recordsheet.getRange("D" + recordrow).setValue(data[2]); 46}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。