前回までの記事
Herokuでの作業
Herokuアカウント作成
姓名は本名じゃなくても良さそう。あとで適当なアカウント名に変更できる。僕はtontonにした。
他の項目も適当に入力して登録する
GitHubアカウント作成
上記からアカウント作成
こちらも必須項目を入力して登録する
HerokuとGithubの連携
環境変数設定
FireBaseのDBやTwitterのAPIを利用するにはkey情報というものが必要になる。key情報は他人に見られてはいけない秘匿情報なのでGitにはあげられない。
環境変数を利用してkey情報を管理運用する。運用イメージはこんな感じ
Railsに環境変数設定
dotenv-railsを使用する
Gemfileに以下を書いてインストールする
gem 'dotenv-rails'
bundle install
.envというファイルをアプリケーションルートディレクトリに新規作成して環境変数を書く
.envファイルの書き方例
HOGE_TOKEN = "hogehogetoken"
Railsでは環境変数をENV[環境変数名]で利用できる。.envに書いた内容も同じくENVで値を取り出すことができる。
token = ENV['HOGE_TOKEN']
Herokuに環境変数設定
heroku-configを端末にインストールする
heroku plugins:install heroku-config
.envファイルの環境変数をpush
heroku config:push
Herokuの環境変数を確認
heroku config
他コマンドは上記
設定した環境変数の利用でエラー
環境変数の設定自体はうまくいっても、利用しようとすると以下のようなエラーがたまにでる。
GRPC::InvalidArgument is malformed: it either contains invalid characters or is too long.
git configで確認したところ、値にシングルクォーテーションがついていた環境変数があった
HOGE_TOKEN: hogehoge
HUGA_TOKEN: 'hugahuga'
setで直接環境変数を設定してやればOK
heroku config:set HUGA_TOKEN="hugahuga"
そもそもHerokuを選んだ理由
とにかく無料
初めはプログラム運用管理を単純化したかったのでFireBase一本でいこうと思っていた。
TwitterAPIを使用するにはサーバサイドの処理が必要でFireBaseではNode.jsが使用できる。
FireBaseでNode.js利用するときはCloud Functionというものを使う必要がある。
Cloud FunctionはBlazeプラン(課金)に変えないと使用できない。すぐに課金されるわけではないが慎重にいきたいため断念した。
サーバサイドはRailsしか経験ない
Railsの知識しかない。他の技術を勉強する時間が勿体無い。また、HerokuはRailsと親和性が高いということもある。
まとめ
とりあえずHerokuでの作業は終わり。環境変数周りは大したエラーログも出なくて解決するまでかなり苦労した。。。次はFireBase!
0 件のコメント:
コメントを投稿