学習用にTwitter botを作成してみようと思ったので、Twitterbot作成過程を記録します。
Twitter developerへの登録
https://blog.mimipen.net/entry/2019/07/07/231145
上記記事を参考に、Twitter developerへの登録を行いました。
英語ばかりで少し難解な部分もありましたが、なんとか完了。
完了後にAPI keyとAccess tokenが必要なのでそちらを発行し、後々使う時のためにメモしておきます。
GitHub上でリポジトリを作成後、ローカルマシンにクローン
ここはそんなに難しくはないので問題なしです。
git配下にtwitter-bot-1というファイルをクローンし作成しました。
rails newする
twitter-bot-apiディレクトリ上でrails newを行いました。
$ rails __new__ . -d myspl
としデータベースにmysplを指定した状態でrails newしました。
docker-compose.ymlファイルの作成
Gemfileと同階層にdocker-compose.ymlというファイルを作成し、以下の記述を行いました。
version: "3.2"
services:
database:
restart: always
image: mysql:latest
ports:
- 3306:3306
command: --default-authentication-plugin=mysql_native_password
volumes:
- mysql-datavolume:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
mysql-datavolume:
driver: local
上記の記述は以前mysql2でLineBotを作った時に使ったものをそのまま引用したのですが、これで$ docker-compose up -d
としても「port番号が既に使われているよ!」というエラーが発生してしまいました。
おそらくports:
の部分の記述を変更すれば良いのだろうなーとは思ったので、その辺りをググりport: -3316:3306
と修正しました。
これで$ docker-compose up -d
は通りました。
database.ymlの修正
こちらも過去に作成したものを参考に、config/database.ymlを以下のように修正しました。
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: root
host: 127.0.0.1
development:
<<: *default
database: twitter_bot_1_development
test:
<<: *default
database: twitter_bot_1_test
production:
<<: *default
database: twitter_bot_1_production
username: twitter_bot_1
password: <%= ENV['TWITTER_BOT_1_DATABASE_PASSWORD'] %>
上記のようにdatabase.ymlを修正後$ bundle exec rails s
としたところ、エラーが発生しました。
エラー文を読み取っていくと「webpackerをインストールしなさい」と記載があったので、指示通りにwebpackerをインストール。エラーは解決できました。
プログラミングを学習し始めた時はエラー文一つでテンパリまくっていましたが、2ヶ月ほど勉強したら少しは落ち着いて対処できるようになりました。
$ bundle exec rails s
を実行後、localhost:3000にアクセス成功しました。
本日はここまでです。
作成が進んだら、再度記事UPしていきます。