LoginSignup
8
9

More than 5 years have passed since last update.

話題のlinebotをherokuで試してみました。

はじめに

最近会社でslackが導入されてbot作ったばかりだった矢先に、linebotが作れるようになったとのことだったのでやってみました。
ズンドコ機能についてはslack用につくったのを流用しました。
当たり前ですが、hubotでlinebotが作れるとなると、今までの資産がつかえるのね。素敵。
hubot-line-trialの作者様に感謝。

なお、開発マシンはMac。

必要なやつ

$ brew install heroku-toolbelt
$ brew install node
$ npm install -g hubot hubot-line-trial yo generator-hubot coffee-script

linebot登録

https://business.line.me/ja/products/4/introductionから登録しとく。

つくりかた

$ mkdir linebot
$ cd linebot
$ yo hubot
$ git init
$ heroku login
$ heroku create:apps {アプリ名}
$ heroku addons:create fixie

yo hubotしたときのadapterにはline-trialを入力。

アドオンのfixieは、ころころ変わるherokuのIPを固定してくれるらしい。
heroku addons:create fixieのあとにIPが表示されるからlinebotのServer IP Whitelistに設定。
ついでにlinebotのCallback URLにhttps://{アプリ名}.herokuapp.com:443/hubot/incomingを入力しとく。

botのChannel ID、Channel Secret、MIDを環境変数に設定。

$ heroku config:set LINE_CHANNEL_ID={Channel ID}
$ heroku config:set LINE_CHANNEL_SECRET={Channel Secret}
$ heroku config:set LINE_CHANNEL_MID={MID}

ズンドコ機能

linebot/script/zundoko.coffee
zundoko = ->
  result = ''
  check = []
  zundokoList = ['ズン', 'ドコ']
  until check[check.length-6..check.length].join('').match(/([^(ズン)]ズンズンズンズンドコ|^ズンズンズンズンドコ)$/)
    wordSelector = Math.floor(Math.random() * zundokoList.length)
    check.push(zundokoList[wordSelector])
    if check.length == 5 and check.join('') == 'ズンズンズンズンドコ'
      break
  trial_num = check.length
  check.push('キ・ヨ・シ!!! (試行回数: ' + trial_num + '回)')
  result = check.join('\r\n')
  return result

module.exports = (robot) ->
  robot.hear /^(ず|ズ)(ん|ン)(ど|ド)(こ|コ)$/, (msg) ->
    result = zundoko()
    msg.send result

"ズンズンズンズンドコ"の前は"ズン"が来たらいけないと思って、少しストイックなズンドコにした。
だって"ズンズンズンズンズンズンズンズンズンズンズンドコ"だとキヨシも歌いづらいだろうし。

ずんどこしてみる

$ bin/hubot
zundoko> ズンドコ
ズン
ドコ
ドコ
ズン
ズン
(中略)
ズン
ドコ
ズン
ズン
ズン
ズン
ドコ
キ・ヨ・シ!!! (試行回数: 47回)

でぷろい

$ git add .
$ git commit -m 'first commit'
$ git push heroku master

やってみる

linebotのページの下の方にあるQRコードからbotに話しかけてみる。
スクリーンショット 2016-04-14 11.05.36.png

ズンドコの試行回数の大小で勝ち負け決めるゲームして、飲み会で飲みまくるぞ〜〜〜

参考

Line BOT API Trial + hubot で heroku 上にBot作成 | liptonista
hubot-line-trialを使ってhubotからlinebotに通知させてみた - Qiita

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9