Macにdirectの開発環境daabを構築してみる

MacBook買いたてで全然慣れません・・・
チャットボット作成のため会社で導入しているdirectのボット開発フレームワークであるdaab環境を構築してみます。

#daabって？
[daabディベロッパーサイト](https://direct4b.com/ja/bot/dev/)参考です。
チャットツール「direct」のチャットボットを開発するためのフレームワークでＧithub社のhubotを拡張させたものです。

#事前の準備
##daabツールをインストール

```:terminalコマンド
$ npm install -g daab
```

```:出力ログ
/Users/take/.nodebrew/node/v8.1.2/bin/daab -> /Users/take/.nodebrew/node/v8.1.2/lib/node_modules/daab/lib/daab.js

> websocket@1.0.23 install /Users/take/.nodebrew/node/v8.1.2/lib/node_modules/daab/node_modules/websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node
+ daab@0.1.6
added 20 packages in 13.159s
```

インストールできたようなのでhelpコマンドが通るか確認してみます。
```:terminalコマンド
$ daab help
```

```:出力ログ
  Usage: daab [options] [command]


  Commands:

    init        setup the daab environment.
    login       login as a bot account.
    logout      logout from the service.
    run         run the daab. (Ctrl-C to stop)
    start       run the daab as a deamon.
    stop        stop the daab deamon.
    deploy      upload the server.
    invites     show and accept a domain invite.
    help [cmd]  display help for [cmd]

  Options:

    -h, --help     output usage information
    -V, --version  output the version number
```
大丈夫そうですね。

##ボットの作成
ボットディレクトリを作成し作成したmybotディレクトリに移動します。

```:terminalコマンド
$ mkdir mybot && cd $_
```

daab環境を初期化します。

```:terminalコマンド
$ daab init
```

```:出力ログ
Initialized empty Git repository in /Users/take/mybot/.git/
remote: Counting objects: 284, done.
remote: Total 284 (delta 0), reused 0 (delta 0), pack-reused 284
Receiving objects: 100% (284/284), 501.80 KiB | 465.00 KiB/s, done.
Resolving deltas: 100% (114/114), done.
From https://github.com/lisb/daab-starter
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> daab-starter/master
daab initialized.
```

##directへのログイン
directに存在するアカウントをボットとして動作させるためにdaabからログインさせます。

```:terminal
$ daab login
Email: loginid@bot.email.com
Password: *****
logged in.
```

```:terminal
daab run
```

```
> websocket@1.0.23 install /Users/take/mybot/node_modules/websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node

> fsevents@1.1.2 install /Users/take/mybot/node_modules/fsevents
> node install

[fsevents] Success: "/Users/take/mybot/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
npm notice created a lockfile as package-lock.json. You should commit this file.
added 383 packages in 16.704s
[2017-06-28 00:44:48]  WebSocket opened.    
[Wed Jun 28 2017 00:44:49 GMT+0900 (JST)] INFO hubot-redis-brain: Discovered redis from REDIS_URL environment variable
```

mybotディレクトリ配下はこうなってます。
![Kobito.BtutxV.png](https://qiita-image-store.s3.amazonaws.com/0/178016/8b18b983-21ea-0033-8b1a-b594c51e0be0.png "Kobito.BtutxV.png")

##directでボットに話しかけてみる
「ping」と話しかけて「PONG」と返ってきたら成功です。
![Kobito.HMv6e7.png](https://qiita-image-store.s3.amazonaws.com/0/178016/fd2f103b-6e0f-9fa2-f5db-445904d0d969.png "Kobito.HMv6e7.png")

繋がってますね。