- Product Manager
- Web Engineer
- Customer Support
- Other occupations (60)
- Development
-
Business
- Product Manager
- プロダクトマネージャー
- 広報
- カルチャー推進・浸透
- 知財戦略立案・推進・発明発掘
- リスクマネジメント統括本部
- 内部監査
- AML/CFTコンプライアンス
- AML・金融犯罪対策Ops
- 金融コンプライアンス
- システム監査
- ビジネス採用担当
- 経営企画(予実・IR)
- HRBP
- Legal
- 債権管理/MFK
- ToB Sales
- インサイドセールス
- フィールドセールス
- インサイドセールス SDR
- インサイドセールス企画
- オンラインセールス
- SaaS営業、MFBC
- インサイドセールス MFBC
- セールス MFBC
- マーケティングリサーチャー
- マーケター
- データマーケター
- BtoBマーケティングリーダー
- CRMスペシャリスト
- イベントマーケター
- Other
こんにちは、エンジニアの杉本です。
マネーフォワードではRailsエンジニアとして働いています。
エンジニアはパソコンに向かっている時間が比較的長いため、一日のメリハリがなくなりがちです。
そこで今回は、APIを使ってSlackに時報を流す方法をご紹介しようと思います。
今回はHubot等は利用せず、Rubyを使った方法をお伝えします。
初期設定
まずはスクリプトの置き場所を作ります。
ディレクトリを作成してGemfileを生成します。
mkdir local_bots
cd local_bots
bundle init
SlackAPIを動かす
Gemの導入
次にAPIを動かす為のGemを導入します。
今回はslack-ruby-gemというGemを利用します。
早速Gemfileに設定を追加してインストールします。
Gemfile
source "https://rubygems.org"
gem 'slack-api'
bundle install
slack-ruby-gem の動作確認
次にSlackAPIを実際に動かしてみます。
事前にこちらでSlackAPIのtokenを取得しておいて下さい。
local_bots以下にtime_signal.rbを作って実行してみます。
「自分のTOKEN」と「発言したい部屋」は自分の環境に合わせて書き換えて下さい。
time_signal.rb
#!/usr/bin/env ruby
require "slack"
Slack.configure do |config|
config.token = '自分のTOKEN'
end
Slack.chat_postMessage(text: 'TEST!', channel: '発言したい部屋')
以下のコマンドで自分の指定した部屋への発言がされるかと思います。
chmod 755 time_signal.rb
./time_signal.rb
スクリプトを定期実行させる
定期実行にはWheneverというGemを利用します。
Wheneverはcrontabの設定をRubyで記述できるGemです。
Wheneverのインストールと初期設定をします。
Gemfile
source "https://rubygems.org"
gem 'slack-api'
gem 'whenever'
bundle install
mkdir config
wheneverize
wheneverizeを呼ぶとconfigフォルダにschedule.rbというファイルが生成されます。
そこにcrontabの設定を記述していきます。
schedule.rb
# 平日の10時〜18時に実行
every '0 10-18 * * 1-5' do
command '~/Documents/local_bots/time_signal.rb'
end
設定が終わったらcrontabに反映させます。
whenever --update-crontab
時報処理を作る
最後にtime_signal.rbに時報処理を記述していきます。
今回は下のように書きました。
time_signal.rb
#!/usr/bin/env ruby
require "slack"
Slack.configure do |config|
config.token = '自分のTOKEN'
end
text = case Time.now.hour
when 10 then '10時: 今日も頑張りましょう'
when 11 then '11時: 午前中もうひと踏ん張り!!'
when 12 then '12時: ++ ランチタイム ++'
when 13 then '13時: 午後も頑張りましょう'
when 14 then '14時'
when 15 then '15時: ++ おやつの時間 ++'
when 16 then '16時: 午後も3時間経過、今日の目標の達成具合を確認しよう'
when 17 then '17時'
when 18 then '18時: 一日もあと少し、集中しましょう!!'
end
Slack.chat_postMessage(text: text, channel: '発言したい部屋')
これで時報が流れてくれるはずです。
最後に
マネーフォワードでは様々な技術を使って仕事環境を改善していけるエンジニアを募集しています。
みなさまのご応募お待ちしております!