イモケンピウスの辞書

脳の記憶容量がフロッピーディスク2枚分しかないのでここに残しておくことにしました。Android、Unityについての記事が多いです

Typetalk用Botを作成する ~hubot入門その3 古いパソコンの復活~

これまでのあらすじ

前回の続きです。

前回までで目標であった「Typetalk用Botを作成しHeroku上で実行する」は一応達成しました。

が、不十分不完全燃焼の結果と言わざるを得ませんでした。

なぜならHerokuの無料プランの制限(6時間スリープ問題)に引っかかり「毎朝起こさないと起きない低血圧hubot」が爆誕してしまったからです。

今回、解決策を模索し、いっそレンタルサーバーを借りてそこでBotを実行しようかとも思ったのですが 昔のパソコンにubuntuぶちこんだことを思い出しました。

古くて使わなくなったパソコンをhubotサーバーとして使えばいいんじゃね?と。

そこでメリットデメリットを洗い出すことにしました。

メリット

  • お金かからない
  • 24時間稼働
  • 好きに使える

デメリット

  • 少し動作が重たい
  • 時間が経つと電源アダプターがあっつい

アダプターの熱以外で、やらない手はないかなと。

早速導入してみました。

Gitを使用してコードを共有

現在hubotを編集しているPC(メインPCとします)と古いPC(サブPCとします)の2台のPCでコードを共有するためにGitを利用します。

僕は無料で個人用非公開リポジトリを作成できるbitBacketを使用しました。

bitBacketでのリポジトリの作成や、リポジトリにコードをプッシュする方法はbitBacketで説明されているのでハショリます。

端折ったのは下の2点です。

  • bitBacketなどにリポジトリを作成し、メインPCからプッシュ
  • git cloneを使ってサブPCにクローンを作成

ちなみにサブPCで使用しているOSは正確にはUbuntuベースのlinuxBeanというOSです。

自分みたいなLinux初心者にはぴったりの優しめなOSなのでおすすめです。

ではクローンが終わりましたら、hubotのディレクトリに移動し実行環境を整えます。

下記コマンドを順番に実行してください(nodejsとnpmのインストールは飛ばしても構いません

$ sudo apt-get update
$ sudo apt-get install nodejs
$ sudo apt-get install npm
$ sudo apt-get install redis-server

これで実行

$ bin/hubot

おや、エラー。

"failed to fetch from registory: hubot-shipet"

ググるとどうやらnodejsとnpmのバージョンが悪いみたいです。

一度2つをアンインストールしてPPAを使用してインストールしなおします

ちなみにPPAを利用してnodejsをインストールするとnpmも一緒にインストールされます。

こちら参考にさせていただきました。

$ sudo apt-get purge nodejs npm
$ curl -sL https://deb.nodesource.com/setup | sudo bash -
$ sudo apt-get install -y nodejs
$ sudo apt-get install build-essential

インストールが完了したらリトライ

$ bin/hubot

ワーニングはでますが待機状態に入りました。成功です。

レスポンスもこの通り。

bottyan> bottyan ping
bottyan> PING

ではTypetalk連携を行ってみます

$ export HUBOT_TYPETALK_CLIENT_ID='クライアントID'
$ export HUBOT_TYPETALK_CLIENT_SECRET='クライアントシークレットキー'
$ export HUBOT_TYPETALK_ROOMS='トピックのID'
$ bin/hubot -a typetalk

Typetalkに"hana ping"と入力したら"PONG"とレスポンスがありました。

これで成功ですね。

ちなみに実行時に「npmのバージョンが古い」とワーニングが出ていたのでバージョンアップを行いました。

$ sudo npm -g install npm@latest

これやったらワーニングは消えましたのでご参考まで。