Google SpreadSheetをRubyから操作する
APIからのみ利用するならサービスアカウントを作成すればOK。IAMと管理 > 認証情報からサービスアカウントを作成する。付与する権限など特にはいらないっぽい。 Driveを弄るならDriveのAPIを有効にする
Spreadsheetを弄るならSpreadSheetのAPIを有効にする
作成したサービスアカウントにEメールアドレスが発行されているのでアクセスさせたいSpeadSheetの共有アドレスに追加しておく
SpreadSheetのIDは下記の部分。これを使ってプログラムからSperadSheetにアクセスする。
https://docs.google.com/spreadsheets/d/ここに書いてあるやつ/edit#gid=0
あとはこんな感じでコードを書けばOK。
code:rb
require 'google/apis/sheets_v4'
# 初期化諸々部分
service = Google::Apis::SheetsV4::SheetsService.new
authorizer =
Google::Auth::ServiceAccountCredentials.make_creds(
json_key_io: File.open('lib/cred.json'),
scope: %w[
],
)
authorizer.fetch_access_token!
service.authorization = authorizer
spreadsheet_id = 'your spreadsheet id'
# シート1のA1カラムに'Hello'と書き込む例
range = 'シート1!A1'
value_range_object =
Google::Apis::SheetsV4::ValueRange.new(values: 'Hello')
service.update_spreadsheet_value(
spreadsheet_id,
range,
value_range_object,
value_input_option: 'RAW',
)
リソース