Hitsuji_monのブログ~ 村上春樹のあれ ~

文学好きな組み込み系エンジニア

Docker上のRailsでcredentialsを設定し、APIを利用する

Docker上のRailsYoutube Data API v3を使う流れ

APIキーを取得し, OAuth2.0認証を経由してGoogle APIにアクセスする

tech.sanwasystem.com

  • 注意:取得したアクセストークンには有効期限があり、暫くしたらリフレッシュしなければならない。この点を元記事では「AWS Lambda」からGoogle APIにアクセスすることで解消している

APIを使った取得するデータの種類を, scopeを使って上記記事から変更

kakusuke98.hatenablog.com

APIキーをRailsアプリに取り入れる

秘密鍵管理にcredentials.yml.encを使う(Rails =>5.1)
これは通常のファイルの開き方だと、読み取り専用モードになってしまうので、以下のようにrailsで使えるcredentialsコマンドを使い編集する

# 注意: Dockerではこれだと動かない(vimを入れてない)
$ EDITOR=vim bin/rails credentials:edit

blog.naoshihoshi.com

今回の Docker上のRailsには、vimが入っていないので
Dockerfile内にvimのインストールを追記する。
エディタはvimじゃなくてもいいけど、vimで編集したい!!(好み)

qiita.com

# Docker上のRailsでcredentials.yml.encを編集
$ docker-compose run -e EDITOR="vim" web rails credentials:edit

credentialsに設定した環境変数の呼び出し方
以下のようにcredentials.yml.encに設定した場合

hoge: fuga
aws:
  access_key_id: 123
  secret_access_key: 345

次のようにして環境変数を呼び出す

Rails.application.credentials.hoge # => "fuga"
Rails.application.credentials.aws # => {:access_key_id=>123, :secret_access_key=>345}
Rails.application.credentials.aws[:access_key_id] # => 123

deviseを使っているアプリケーションで環境変数を設定している場合のことも含め上記の情報は次の記事の転載
qiita.com

credentials.yml.encに設定したAPIキーを使って、APIを叩く!!

実際にAPIをしようしてYoutubeの動画情報などを取得する。
参考に動かした例はこちら。

developers.google.com

qiita.com

kakusuke98.hatenablog.com

埋め込んだ動画サムネイルiframeをレスポンシブ 対応

apiで取得したサムネイル情報 iframeのレスポンシブ対応にちょっとてこずる

メディアクエリ使ってcss調整したけど、これでよかった

akros-ac.jp

qiita.com

www.slideshare.net