シャルロッテbotの開発環境構築
※ この記事は開発者向けに書かれたものです。
シャルロッテbotの開発環境構築
「シャルbotをローカルで動かしたい!」という人向け
環境
シャルbotは開発機がMac OSで運用はUbuntu14.04ですが、他のOSでも正しく設定さえすれば動くと思います。
- ruby 2.3.1
- ruby 2.xなら大丈夫(未検証
- 要Bundler(gem install bunderでインストールできます)
- MySQL 5.x
- 運用では互換DBであるMariaDBを使用しています
- SQLite不可
- Mecab
- UTF-8のみ
- 運用では精度を高めるためmecab-ipadic-neologdの辞書を使っていますがデフォルト辞書でも可
手順
ダウンロード
git clone https://github.com/thr3a/syarubot.git
cd ./syarubot
bundle install
データベースの設定
syarubot/config/database.ymlを作成し、以下を記述します。
default: &default
adapter: mysql2
encoding: utf8
host: MySQLサーバーのホスト名
username: ユーザー名
password: パスワード
pool: 5
development:
<<: *default
database: syaru
production:
<<: *default
database: syaru
station:
<<: *default
database: station
test:
<<: *default
歴史的な経緯により通常のRailsのやり方ではデータベースの構築ができません。sayrubotディレクトリ上で以下のコマンドを実行します。
bundle exec rails db < db/syaru_structure.sql
bundle exec rails db -e station < db/station_structure.sql
syaru,stationデータベースが作成されれば成功です。
おそらくここで bundle exec rails c
をエラーなく実行できるはずです。
Twitter APIキーの設定
syarubot/config/secrets.ymlを作成し、以下を記述します。
development:
secret_key_base: 7e583311bb7ace5a59a0162f2bc9b87dc93d0004011004e05ea00e44dd24cd8407823c9816dd4e34f0fff35df63ad8c2b717647e105bc285175177a3ec9715e7
consumer_key: "以下4つはTwitterAPIの認証に必要な4つのキー"
consumer_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_token_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
own_name: "bot自身のアカウント名 @は含めません"
test:
secret_key_base: 3c9edea0d21568e91f7ff51145da51702175a89b6986065d475263f8016ca6a8cc3cee834a1a3829df259ffb57db072bf0ea5739fee7a9cd16175703d4d300fd
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: *****************************************************************
consumer_key: "基本的にはこっちは空で可"
consumer_secret: ""
access_token: ""
access_token_secret: ""
own_name: "Charlotte__bot"
設定後に bundle exec rake bot:start
をしたあとに「シャルロッテ」に反応すればOKです。
Mecabの設定
すでにターミナル上からmecabコマンドが実行できることを確認してください。
デフォルトの辞書パスは「usr/local/lib/mecab/dic/mecab-ipadic-neologd」です。変更する場合は config/environments/development.rb 内の config.mecab_dic_path
の値を変更してください。
その他
当然ですがDBの中身が空っぽだとしりとりすらできません。データは各自でご用意ください。