슬랙과 허봇을 협업하기 위해

5316 단어 슬랙경 6Hubot

Hubot 프로젝트 준비(Mac)



Hubot 설치



$ npm install -g yo generator-hubot

Hubot 프로젝트 만들기



$ mkdir mybot(プロジェクト名)
$ cd mybot
$ yo hubot
# 今回は Slack と連携したいので Bot adapter には slack を指定

slack bot 준비



슬랙으로 적절한 팀 준비


  • htps : // s ck. 코m/

  • 슬랙에서 hubot을 사용하도록 설정


  • Apps & Custom Integrations 선택


  • hubot 검색

  • 발견되면 설치하고 이름을 설정 (이번에는 mybot)
  • API 토큰이 발행되므로 메모
  • HUBOT_SLACK_TOKEN=xxx


  • Heroku 설정



    터미널에서 Heroku를 조작하기 위한 준비


  • 아래를 참고로 toolbelt 얻기
  • htps : // 및 ltlt. 헤로쿠. 코 m / sx

  • heroku에 로그인
  • $ heroku login
    

    Heroku에 응용 프로그램 만들기



    $ heroku create app_name
    Creating app_name... done, stack is cedar-14
    https://app_name.herokuapp.com/ | https://git.heroku.com/app_name.git
    Git remote heroku added
    # ちなみに heroku 上でユニークな名前じゃないといけないっぽい
    $ git remote -v
    heroku  https://git.heroku.com/app_name.git (fetch)
    heroku  https://git.heroku.com/app_name.git (push)
    

    Heroku config 추가



    $ heroku config:add HUBOT_SLACK_TOKEN=xxx
    # slack の token を設定する(上で発行された API token)
    $ heroku config:add HUBOT_CHATWORK_ROOMS="room_id"
    # slack で hubot を参加させたい room id を設定
    $ heroku config:add TZ=Asia/Tokyo 
    # タイムゾーンを日本に設定
    

    Heroku가 일어나는 시간을 스케줄러로 설정


  • 무료 플랜은 하루 6시간 자고 버리므로 Process Scheduler라는 애드온으로 시간을 관리
  • htps : // 에메멘 ts. 헤로쿠. 코 m / 아동 s / p 로세 s s 치 ぇ


  • keep-alive 설정


  • heroku는 30 분 동안 액세스 할 수 없을 때 sleep하므로 hubot-heroku-keepalive를 설정합니다

  • $ npm install hubot-heroku-keepalive --save
    $ heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=https://app_name.herokuapp.com/
    # Process Scheduler と合わせて wakeup time と sleep time を設定する
    $ heroku config:add HUBOT_HEROKU_WAKEUP_TIME=7:00
    $ heroku config:add HUBOT_HEROKU_SLEEP_TIME=24:00
    

    Heroku에 배포



    bot가 할 일


  • 정시에 시간을 알리는 기능 추가

  • script/notice.coffee
    cronJob = require('cron').CronJob
    module.exports = (robot) ->
      new cronJob('0 0 * * * *', () =>
        date     = new Date()
        hour     = date.getHours()
        envelope = room: process.env.HUBOT_CHATWORK_ROOMS
        robot.send envelope, "#{hour} 時です。"
      ).start()
    

    배포


  • heroku 에 push
  • $ git push heroku master
    

    결과


  • 이런 식으로 정해진 시간에 정해진 메시지를 post 할 수 있다



  • 참고


  • htps : // 후보 t. 기주 b. 코m/
  • htps : // 기주 b. 코 m / 후보 t sc 리 pts / 후보 t 헤로 쿠 케 파 ゃ
  • htps : // 에메멘 ts. 헤로쿠. 코 m / 아동 s / p 로세 s s 치 ぇ ぇ r
  • 좋은 웹페이지 즐겨찾기