google-api-clientを指定してinstallするのはもう非推奨になっていた
GoogleのAPIをRubyから使おうと思ってgoogle-api-client
をしようとすると、警告が出ます。
こんなふうにGemfileに書いてbundle installすると
gem 'google-api-client'
インストールはされるんだけど、以下のようにメッセージが出てくる。
Bundle complete! 37 Gemfile dependencies, 165 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from google-api-client:
*******************************************************************************
The google-api-client gem is deprecated and will likely not be updated further.
Instead, please install the gem corresponding to the specific service to use.
For example, to use the Google Drive V3 client, install google-apis-drive_v3.
For more information, see the FAQ in the OVERVIEW.md file or the YARD docs.
*******************************************************************************
メッセージの意味としてはgoogle-api-client gemは非推奨だから、今後更新されません、 代わりに使用する特定のサービスに対応するgemをインストールしてね、ってことですね。
ということで、このメッセージが出てこないようにするにはサービスごとのgemで自分が使いたいものを指定して使えばOK
以下の例はYouTubeのAnalyticsとReportingのAPIを使うための指定方法になります。
gem 'google-apis-youtube_analytics_v2'
gem 'google-apis-youtubereporting_v1'
どんなgemがあるの?というところは以下を見ればOK。リンク先を見ると本当にたくさんあることがわかりますね。
これを書いている時点でざっと614種類ありました。
Gemfileに書くときは先頭にgoogle-apis-
を付与して書けばOK。
つまり、google-api-clientでインストールすると毎回600以上、全てのサービスに対応するためのgemが全て使用可能な状態になるということなのかもしれません。
それはさすがにファットですね。
この記事の環境情報
- Ruby 3.1.2
- rails 7.0.4
- さむくなってきた
railsに関する他の記事を読む
- omniauth-google-oauth2でscopeを追加するときはemailが必須だった
- OmniAuthでdeveloper providerを使ってダミーログインをする
- [Rails]取得したクラス名をキャメルケースからスネークケースに変換する
- urlヘルパーをモデルなどでも使う方法
Rubyに関する他の記事を読む
- slimでtype='application/ld+json'のscriptタグを書く
- Slack APIによる自動メッセージでユーザーグループにメンションする方法
- RubyでUnixtimeからTimeオブジェクトを生成する
- gemインストール時にUndefined symbols for architecture arm64と出たときの対応
- RubyでUTCの時刻情報をJST基準に変換する
最近の記事を読む
- Flutterでcontextを使わずにlocale情報を取得する
- Cloud RunでIAPを有効にしようとしてハマったこと
- slimでtype='application/ld+json'のscriptタグを書く
- タグマネージャーでjsのloadイベントを発火させたいとき
- mysqlコマンドを実行してERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)と言われたら