前提・実現したいこと
業務で、
■Googleフォームからの申請がスプレッドシートに反映される
↓
■そのスプレッドシートの内容(欲しいセルの内容のみ)をSlackに連携させる
ことを行いたいです。
※現在GoogleフォームからSlackへの連携はできているのですが、スプレッドシートに表示される案件番号をSlackに投稿したいため、この形式を考えています。
超初心者なので、様々なサイトを参考に以下のようなコードを書いてみたのですが、うまく動きません…。
ちなみにトリガーは
・スプレッドシートから
・フォーム送信時
・関数 postSheetChange
にしています。
アドバイスいただけないでしょうか。
どうぞよろしくお願いいたします。
該当のソースコード
var postText; /* ** GoogleSpreadSheetの変更をSlackに通知する関数 */ function postSheetChange(){ //自作の関数:slackに通知する文字列を作成 createSendMessage(); //slackに通知する文字列を設定 var postText = this.postText; //自作の関数: textをslackに通知する関数を呼び出す postSlack(postText) } /* ** textをslackに通知する */ function postSlack(text){ var url = “Webhookで取得したURL”; var options = { “method” : “POST”, “headers”: {“Content-type”: “application/json”}, “payload” : JSON.stringify({ “channel” : “slackのチャンネル名”, “text” : text, }) }; UrlFetchApp.fetch(url, options); } function createSendMessage(){ var time = new Date(); var month = time.getMonth() + 1; var day = time.getDate(); var today = month + “月” + day + “日” var postText; var notifySheet = SpreadsheetApp.getActiveSpreadsheet(); //アクティブセルを取得する var myCell = notifySheet.getActiveCell(); //アクティブセルがA列の場合(rowNO)のみ通知する if(myCell.getColumn() == 1){ var rowNum = myCell.getRow(); this.postText = “<!here>“ “●rowNO:” + notifySheet.getRange(“A” + rowNum).getValue() + “\n” + “●依頼者:” + notifySheet.getRange(“D” + rowNum).getValue() + “\n” + “●依頼対象:” + notifySheet.getRange(“G” + rowNum).getValue() + “\n” + “●対象URL:” + notifySheet.getRange(“J” + rowNum).getValue() + “\n” + “●依頼内容:” + notifySheet.getRange(“I” + rowNum).getValue() + “\n”+ “●反映日:” + notifySheet.getRange(“K” + rowNum).getValue() + “\n”+ “●ドライブ:” + notifySheet.getRange(“N” + rowNum).getValue() + “\n”+ ;“スプレッドシート自体のURL“; } }
補足情報(FW/ツールのバージョンなど)
postSheetChangeの関数は動いており、スクリプトから実行してみるとSlackに「@here」のみ投稿されました。
フォーム送信→スプレッドシート→Slackへの連携が取れていません…。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/25 01:34