環境
ruby 2.5.1
rails 5.2.4.1
前提・実現したいこと
Railsでウェブサービスを製作中です。
データベースにBigQueryを使用し、そこからデータを取ってきたいです。
発生している問題・エラーメッセージ
railsとBigQueryの認証がわかりません。
下記の記事を参考にしていますが、どこにソースコードを書くのか記載しておらず、わかりません。。
筆者がapiを利用することが初めてでapiを利用する上での当たり前がわからないことが原因かもしれません。。。
http://atsuya046.hatenablog.com/entry/2015/04/04/135134
https://qiita.com/ryurock/items/35cbdbd4f693fdc79bf8
http://tech.feedforce.jp/bigquery_tips.html
https://inside.pixiv.blog/2020/01/27/180000
該当のソースコード
特にソースコードをどこに書けばいいのかわからないです。
このソースコードはrails内のどこに記述すればいいですか?
この記事のソースコードです。
ruby
1require 'google/api_client' 2 3client = Google::APIClient.new(application_name: 'sample', application_version: '0.0.1') 4key = Google::APIClient::KeyUtils.load_from_pkcs12('p12のファイルパス', 'notasecret') 5scope = [ 6 'https://www.googleapis.com/auth/bigquery', 7 'https://www.googleapis.com/auth/cloud-platform', 8 'https://www.googleapis.com/auth/devstorage.read_only', 9 'https://www.googleapis.com/auth/devstorage.read_write', 10 'https://www.googleapis.com/auth/devstorage.full_control' 11] 12client.authorization = Signet::OAuth2::Client.new( 13 token_credential_uri: 'https://accounts.google.com/o/oauth2/token', 14 audience: 'https://accounts.google.com/o/oauth2/token', 15 scope: scope, 16 issuer: '123456789@developer.gserviceaccount.com', 17 signing_key: key) 18client.authorization.fetch_access_token! 19 20api = client.discovered_api('bigquery', 'v2')
試したこと
BigQueryのサービスアカウントを作成し、秘密鍵入手、p12 key取得など、BigQuery側で行う作業は完了しています。
この記事で行うクライアントIDの作成をして、keyなど使うものは全て控えています。
記事通りに進めて、最後モデルの作成をしようとしたところエラーがでました。
ruby
1rails g model Example 2/home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- google/api_client (LoadError) 3 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' 4 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register' 5 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' 6 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:41:in `rescue in require' 7 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:27:in `require' 8 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `block in require' 9 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency' 10 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require' 11 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bigbroda-0.0.7/lib/google_bigquery.rb:3:in `<top (required)>' 12 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' 13 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' 14 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' 15 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' 16 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' 17 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `block in require' 18 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency' 19 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require' 20 from /home/vagrant/chealsea-test-mysql/config/application.rb:4:in `<top (required)>' 21 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:92:in `require' 22 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:92:in `preload' 23 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:157:in `serve' 24 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:145:in `block in run' 25 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:139:in `loop' 26 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:139:in `run' 27 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application/boot.rb:19:in `<top (required)>' 28 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require' 29 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require' 30 from -e:1:in `<main>'
パーミッションなどを確認してもエラーを解決できなかったため、古い記事ということもあり、バージョン違いでできないと判断し、別記事で模索しています。
記事を複数のせ、回答者様の負担を増やしてしまい申し訳ございません。
どの記事の方法でも大丈夫ですので、記事の解説をしていただければと思います。
apiの勉強不足でありながら質問すること、大変恐縮でございますが、何卒よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。