Slack APIを使ったbotの作り方

Slack APIを使ったbotの作り方

oyatsu_bot

ランチェスターでは16時になると↑のようにSlackに通知されます。
すると皆ぞろぞろとカフェスペースに集まり、楽しいおやつの時間が始まります。
今回はRubyでSlack APIを使ったbotの作り方を紹介します。

Slack APIのtokenを取得

まず最初にここ↓からtokenを取得
https://api.slack.com/web

必要なファイルを準備

mkdir oyatsu
cd oyatsu
bundle init
touch oyatsu.rb

Gemfile

source "https://rubygems.org"

gem 'slack-api'
gem 'whenever'

bundle install

bundle install --path=vendor/bundler

oyatsu.rb

require "slack"

Slack.configure do |config|
  config.token = '取得したtoken'
end

Slack.chat_postMessage(text: ':chocolate_bar: おやつの時間ですよ〜 :lollipop:', channel: '#random', username: 'おやつbot', icon_emoji: ':coffee:')

スケジュール実行

wheneverで毎日16時にpostするようにします。

mkdir config
bundle exec wheneverize

config/schedule.rb

※ rbenvを使用していることを前提とします。

job_type :oyatsu, "export PATH=\"$HOME/.rbenv/bin:$PATH\"; eval \"$(rbenv init -)\"; cd :path && bundle exec ruby :task"

every 1.day, at: '4:00 pm' do
  oyatsu 'oyatsu.rb'
end

crontabに反映
bundle exec whenever --update-crontab

crontab -e で確認すると

0 16 * * * /bin/bash -l -c 'export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd /Users/ユーザー名/path/oyatsu && bundle exec ruby oyatsu.rb'

これで毎日16時に通知してくれます。
たまには息抜きにbotを作って遊んでみてはどうでしょうか。

TAG

  • このエントリーをはてなブックマークに追加
takano
takano takano

素晴らしいアプリを開発して世の中をもっとハッピーにしたい! ビール大好き!卓球大好き!音楽大好き! 最近は子供とおかあさんといっしょを見てるせいで「ブンバボーン」の脳内再生が止まりません。