Upgrade to Pro — share decks privately, control downloads, hide ads and more …

環境構築はいらないよ GASでサクッとbotをつくろう / 20171202 Creating...

szkayeah
December 02, 2017

環境構築はいらないよ GASでサクッとbotをつくろう / 20171202 Creating Bot with GAS

2017/12/02 Cybozu Tech Conferenceの大阪LT資料です。
Google Apps Script(GAS)を使って、SlackやGoogle Spread Sheetと連携するbotをお手軽に体験するという内容です。

szkayeah

December 02, 2017
Tweet

More Decks by szkayeah

Other Decks in Programming

Transcript

  1. とりあえず4行! function myFunction() { var sheet = SpreadsheetApp.openById(‘スプレッドシートID'); var lastRow

    = sheet.getLastRow(); var date = new Date(); sheet.getRange('A' + String(lastRow + 1)).setValue(date); }
  2. doPost関数を作る function doPost(req) { // TokenCheck if (req.parameter.token != “Slackのトークン")

    { return; } myFunction(); } function myFunction() { var sheet = SpreadsheetApp.openById(‘スプレッドシートID'); var lastRow = sheet.getLastRow(); var date = new Date(); sheet.getRange('A' + String(lastRow + 1)).setValue(date); }
  3. doPost関数でパラメータを受け取る function doPost(req) { // TokenCheck if (req.parameter.token != “Slackのトークン")

    { return; } var textArray = req.parameter.text.split(":"); // コロンの後ろに文字がある場合のみ実行 if (textArray.length > 1) { myFunction(textArray[1]); } }
  4. SlackへPOSTする関数を作る function postSlack(text) { var url = “SlackのIncomingWebHooksのURL"; var payload

    = { "text" : text }; var options = { "method" : "POST", "payload" : JSON.stringify(payload) }; UrlFetchApp.fetch(url, options); }
  5. doPost関数でpostSlack関数を呼ぶ function doPost(req) { // TokenCheck if (req.parameter.token != “Slackのトークン")

    { return; } var textArray = req.parameter.text.split(":"); // コロンの後ろに文字がある場合のみ実行 if (textArray.length > 1) { myFunction(textArray[1]); postSlack(textArray[1]); } }
  6. 参考情報 ▌Google Apps Script  https://developers.google.com/apps-script/ ▌Slack API  https://api.slack.com/

    ▌今回作ったコード  https://github.com/szkayeah/Bot/blob/master/hel loGasBot/helloGasBot.gs