2&>1

AWSとかGCPとかGolangとかとか

Slackでのランダム格言BOT作成

GASからスプレッドシートの内容をランダムでSlack投稿するやつつくりました。

よくある格言BOTです。

完全自分の心の世界平和用です。

前提

・GASの触り方は知ってる(知らなくてもググればすぐ)

スプレッドシートの作り方も知ってる(知らなくてもググれば...)

・Slack使ってる

・SlackBOTを設定してる(これだけちょっと面倒かも。でもgg....)

GAS

Google Apps Scriptで以下を作成

function kakugen() {
//取得したwebhookを入力
  var webhook = "https://hooks.slack.com/services/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";
//シートのURLを入力
  var spreadsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/10icIaIOcwkz4A2nARVAT1LYcgi2KE7u_pE8-kxJCfzs/edit#gid=0');
//シート名を入力
  var sheet = spreadsheet.getSheetByName('kakugen1');

/*
シートの最終行番の読み込みと乱数で行を取得する。
見出し行などを削除するために数字を足したり引いたり
*/
  var maxRow = sheet.getDataRange().getLastRow();
  var numRow = Math.floor(2+Math.random()*(maxRow-1)); 
  
  var kakugen = sheet.getRange(numRow, 1).getValue();
  var person = sheet.getRange(numRow, 2).getValue();
  var icon = sheet.getRange(numRow, 3).getValue();
  
  var jsonData =
      {
        "username" : person,
        "text": kakugen,
        "icon_emoji": icon
      };
  var payload = JSON.stringify(jsonData);
  var options =
      {
        "method" : "post",
        "contentType" : "application/json",
        "payload" : payload
      };
  UrlFetchApp.fetch(webhook, options);
}

軽く自身の環境で使う際に変更すべき点の説明

・webhook→設定したslackのwebhook値を""の中に記入(以下から取得できる)

slack.com

・spreadsheet→作成したスプレッドシートのURLを``の中に記入

・sheet→作成したスプレッドシートのシート名を``の中に記入

スプレッドシーを作る

こんな感じでつくる

ファイル名とシート名は先のスクリプトと合わせること (消してる部分は大人の事情)

f:id:piyojir0:20190717102859j:plain

実行

スプレッドシートを作成するとスクリプトを実行する

こんなポストされます。

f:id:piyojir0:20190717103105j:plain

まとめ

スプレッドシートからランダムでポストするやつでした。

あとは定期的に実行するようにGASのトリガーを設定すれば完成・

以上