前提・実現したいこと
GASで Googleフォームの回答があったら、回答の一部と、回答をキーにしてスプレッドシートで表示されるSlackIDを取り出して、Slack通知をしたいです。
発生している問題・エラーメッセージ
エラーは特に出ませんが、そもそもSlack通知が飛びません。
今まで書いたコードを真似て書いてみましたが、どこから修正したらいいのかわからない状況です。
該当のソースコード
GAS
1function getForm(e){ 2 3const ss = SpreadsheetApp.getActiveSpreadsheet(); 4const sheet = ss.getSheetByName('フォームの回答'); 5 6//フォームの回答からデータを取り出す 7const temphireId = e.namedValues['ご契約ID'][0]; 8const staffName = e.namedValues['氏名'][0]; 9 10 11//回答が蓄積されるシートから必要なデータを取り出す。※フォームの回答内容ではないデータ 12const slackId = sheet.getRange(lastRow, 2).getValue(); //2=B列 13 14const message = slackId + '\n' + staffName + '\n' + temphireId ; 15 16 17sendToSlack(message); 18} 19 20function sendToSlack(message){ 21 const postToMDS = "通知先のWebhooksURL"; 22 23 const jsonData = 24 { 25 "text" : message, 26 }; 27 28 const payload = JSON.stringify(jsonData); 29 30 const options = 31 { 32 "method" : "post", 33 "contentType" : "application/json", 34 "payload" : payload, 35 }; 36 37 // リクエスト 38 UrlFetchApp.fetch(postToMDS, options); 39}
フォームの回答が蓄積されるシートのB列に下記関数を入れて、通知したいSlackIDを生成しています。
C列以降はフォームの回答が蓄積される列です。
=ARRAYFORMULA(IF(C2:C="","",("<@"&VLOOKUP(VLOOKUP(E2:E,'シート1'!A2:C,3,FALSE),'シート2'!E3:G,3,FALSE)&">")))
補足情報
トリガー
・スプレッドシートから
・フォーム送信時
初心者で基本的な部分でのご指摘もあるかもしれませんが、よろしくお願いいたします。
あなたの回答
tips
プレビュー