hubot + slack で配列の中身をランダムで投稿

毎分1分毎に配列の中身 ary = ['犬','猫','鳥','タコ','イカ']からランダムでslackに投稿するプログラムです。npmでcronは各自インストールしてください。今回はhubotをgeneralに招待してる前提です。出力する配列の中身を指定する番号をランダムで生成している場所はJavascriptで書いてます。CoffeeScriptの上にJavascriptを書くと(動くけど)書き方によっては動かない書き方が有るようで、注意です。

補足

0~4までの乱数を発生させる

Math.floor( Math.random() * 5 );

1分毎にcronJob定期処理を実行

new cronJob('*/1 * * * *', () ->

generalチャンネルに送る(chatworkは部屋番号(数字だけ))

send 'general',

実装

cron.coffee
# 定期処理をするオブジェクトを宣言                                                                                   
cronJob = require('cron').CronJob

ary = ['犬','猫','鳥','タコ','イカ']

module.exports = (robot) ->

  # 特定のチャンネルへ送信するメソッド(定期実行時に呼ばれる) 
  send = (channel, msg) ->
    robot.send {room: channel}, msg

  new cronJob('*/1 * * * *', () ->

    send 'general', "@here #{ ary[Math.floor( Math.random() * 5 )] }"
  ).start()

実行

スクリーンショット 2017-08-07 16.12.21.png

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事