google 스프레드 시트를 API로 조작하는 단계 (ruby)

이게 뭐야?



ruby를 사용하여 google 스프레드시트를 API로 조작하기 전까지의 단계입니다.

기본적으로 htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 슈에 ts / 아피 / 쿠이 cks rt / 루 by 을 하고 있을 뿐이므로 영어의 설명에서도 문제없는 분은 공식적인 분을 봐 주세요.

대상자



루비의 실행 환경이 스스로 만들 수 있는 사람, 또는 이미 존재하는 사람이 대상입니다.

절차



htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 슈에 ts / 아피 / 쿠이 cks rt / 루 by
에 있는 Google 스프레드시트 API 버튼을 클릭합니다.



다음 화면에서 Project 이름을 입력합니다.
[Quickstart] 그대로도 문제가 없으므로 입력한 후 [NEXT]를 클릭합니다.


다음 화면에서 만들 OAuth client를 선택합니다.
Desktop app를 선택하고 CREATE 버튼을 클릭합니다.


다음 화면에서는 [DOWNLOAD CLIENT CONFIGURATION] 버튼이 표시되므로 클릭하여 credentials.json 파일을 다운로드합니다.


계속해서 ruby의 프로그램을 작성해 갑니다.
우선 프로그램을 저장하기 위한 디렉토리를 작성해 갑니다.
이번에는 'sample_google_spreadsheet_api' 디렉토리를 만들었습니다. (디렉토리 이름은 무엇이든 괜찮습니다)
cd ~
mkdir sample_google_spreadsheet_api

그런 다음 gem install을 수행합니다.


구글의 퀵 스타트 페이지에서는 위와 같이 기재하고 있습니다만, 이번에는 젬파일을 작성해 갑니다.
cd sample_google_spreadsheet_api
bundle init

Gemfile이 생성되므로 다음과 같이 편집합니다.

Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

--- # gem "rails"
+++ gem 'google-api-client'


bundle install합니다.
bundle config --local path 'vendor/bundle'
bundle install

다운로드한 credentials.json를(를) 다음에 배치합니다.
# fileディレクトリを作成してcredentials.jsonを格納
mkdir file

sample_google_spreadsheet_api/file/credentials.json

그런 다음 sheets/quickstart/quickstart.rb를 만듭니다.
mkdir sheets
cd sheets
mkdir quickstart
cd quickstart
touch quickstart.rb 

quickstart.rb에 다음 프로그램을 제공합니다.

이것은 Google의 Quickstart에 나열된 것입니다.
require "bundler/setup"
require "google/apis/sheets_v4"
require "googleauth"
require "googleauth/stores/file_token_store"
require "fileutils"
OOB_URI = "urn:ietf:wg:oauth:2.0:oob".freeze
APPLICATION_NAME = "Google Sheets API Ruby Quickstart".freeze
CREDENTIALS_PATH = "./file/credentials.json".freeze
# The file token.yaml stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
TOKEN_PATH = "token.yaml".freeze
SCOPE = Google::Apis::SheetsV4::AUTH_SPREADSHEETS_READONLY
##
# Ensure valid credentials, either by restoring from the saved credentials
# files or intitiating an OAuth2 authorization. If authorization is required,
# the user's default browser will be launched to approve the request.
#
# @return [Google::Auth::UserRefreshCredentials] OAuth2 credentials
def authorize
  client_id = Google::Auth::ClientId.from_file CREDENTIALS_PATH
  token_store = Google::Auth::Stores::FileTokenStore.new file: TOKEN_PATH
  authorizer = Google::Auth::UserAuthorizer.new client_id, SCOPE, token_store
  user_id = "default"
  credentials = authorizer.get_credentials user_id
  if credentials.nil?
    url = authorizer.get_authorization_url base_url: OOB_URI
    puts "Open the following URL in the browser and enter the " \
             "resulting code after authorization:\n" + url
    code = gets
        credentials = authorizer.get_and_store_credentials_from_code(
            user_id: user_id, code: code, base_url: OOB_URI
        )
    end
    credentials
end

# Initialize the API
service = Google::Apis::SheetsV4::SheetsService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = authorize

# Prints the names and majors of students in a sample spreadsheet:
# https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
spreadsheet_id = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
range = "Class Data!A2:E"
response = service.get_spreadsheet_values spreadsheet_id, range
puts "Name, Major:"
puts "No data found." if response.values.empty?
response.values.each do |row|
    # Print columns A and E, which correspond to indices 0 and 4.
    puts "#{row[0]}, #{row[4]}"
end

내용으로는
credentials.json을 기반으로 권한 코드를 얻고 권한 코드에서 액세스 토큰을 얻습니다.
htps : // / cs. 오, ぇ. 이 m / sp re d d 0 ts / d / 1B ぃ MVs0X 등 5 n FMdKvBdB ↓ g 무 qptlbs74
의 내용을 커맨드 라인에 출력한다는 것입니다.
다음은 실행 명령입니다.
ruby sheets/quickstart/quickstart.rb

실행 결과

> ruby sheets/quickstart/quickstart.rb

Open the following URL in the browser and enter the resulting code after authorization:
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=[client_id]&include_granted_scopes=true&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=https://www.googleapis.com/auth/spreadsheets.readonly

처음 실행하면 URL이 표시되므로 액세스합니다.

1: google 계정을 선택합니다.


2: 인가 화면이 표시되므로 「허가」클릭합니다.


3: 인증 코드가 표시되므로 실행 화면에 붙여넣기 Return


실행 결과에 붙여넣기 Return
> ruby sheets/quickstart/quickstart.rb 

Open the following URL in the browser and enter the resulting code after authorization:
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=[client_id]&include_granted_scopes=true&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=https://www.googleapis.com/auth/spreadsheets.readonly
# ↓へ上記で取得した認可コードを貼り付けReturn
[認可コード]

# GoogleSpreadSheetから取得した結果が表示されます。
Name, Major:
Alexandra, English
Andrew, Math
Anna, English
Becky, Art
Benjamin, English
Carl, Art
Carrie, English
Dorothy, Math
Dylan, Math
Edward, English
Ellen, Physics
Fiona, Art
John, Physics
Jonathan, Math
Joseph, English
Josephine, Math
Karen, English
Kevin, Physics
Lisa, Art
Mary, Physics
Maureen, Physics
Nick, Art
Olivia, Physics
Pamela, Math
Patrick, Art
Robert, English
Sean, Physics
Stacy, Math
Thomas, Art
Will, Math

샘플 Google 스프레드시트의 콘텐츠가 표시되면 성공합니다.

좋은 웹페이지 즐겨찾기