おじさんのブログ

おじさんになってからPython、GAS、SEOなどを学習した内容をアウトプットするブログです。

GoogleフォームからSlack投稿(のコピペ)

会社で「Googleフォーム→Slack連携」をやろうとしていた(&うまく動作しなかった)人がいたので、自分もと思い調べてみた。 ありがたいことに、ググってすぐに出てくるページで書かれているコードをコピペするだけで完結してしまった。 (すぐ下位のページにあるコードもほぼ同じだったので、この用途なら誰がやってもこうなる?)。

Googleformからのslack通知設定方法 - Qiita

いつもながら、情報をシェアしてくださるエンジニアさんの文化には感謝するばかり。

会社の人のコードのどこに問題があったのかあとで見せてもらおう。

function sendToSlack(body, channel) {
  var url = "***";
  var data = { "channel" : channel, "userfuga" : "Googleフォーム Bot", "text" : body, "icon_emoji" : ":hoge: " };
  var payload = JSON.stringify(data);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var response = UrlFetchApp.fetch(url, options);
}

function test() {
  sendToSlack("テスト通知確認です", "#練習用");
}

function onFormSubmit(e){

  var body = "Slack通知テストフォームが来たよ!\n"; 
  var applicant = "";
  var itemResponse = e.response.getItemResponses();

  for (var j = 0; j < itemResponse.length; j++){    
    var formData = itemResponse[j];
    var title = formData.getItem().getTitle();
    var response = formData.getResponse();

    switch (title) {
      case "Q1. ほげほげ":
        hoge = response;
        break;
      case "Q2. ふがふが":
        fuga = response;
        break;
      default:
        break;
    }
  }
  var bodyPublic =  body + "Q1. ほげほげ:" + hoge + "\nQ2. ふがふが:" + fuga ;
  sendToSlack(bodyPublic, "#練習用");
}