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