Usare Google Drive in Ruby
Google mette a disposzione parecchie API per i suoi servizi; oggi vediamo come usare quelle per Google Drive con Ruby!
Il punto di partenza, per qualsiasi API, è creare un progetto; potete iniziare con il wizard ufficiale.
Poi andate nella sezione Libreria ed attivate le API che volete; GDrive richiede delle credenziali, che potete creare nella sezione Credenziali.
Create quelle di tipo OAuth; una volta fatto dovete scaricare il file in formato JSON (sempre dalla pagina Credenziali), e salvatelo da qualche parte.
Adesso installiamo la gem per Ruby:
$ gem install google-api-client -v '~> 0.8'
Su alcune distro potrebbero servirvi privilegi elevati.
A questo punto creaimo il nostro file Ruby:
require 'google/apis/drive_v3'
require 'googleauth'
require 'googleauth/stores/file_token_store'
require 'fileutils'
OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'.freeze
APPLICATION_NAME = 'Mp TEST DRIVE'.freeze
CLIENT_SECRETS_PATH = '/home/matte/client_secret.json'.freeze
CREDENTIALS_PATH = '/home/matte/token.yaml'.freeze
SCOPE = Google::Apis::DriveV3::AUTH_DRIVE_METADATA_READONLY
def authorize
client_id = Google::Auth::ClientId.from_file(CLIENT_SECRETS_PATH)
token_store = Google::Auth::Stores::FileTokenStore.new(file: CREDENTIALS_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 'Seguire il link per autorizzare il programma: ' + url
code = gets
credentials = authorizer.get_and_store_credentials_from_code(
user_id: user_id, code: code, base_url: OOB_URI
)
end
credentials
end
service = Google::Apis::DriveV3::DriveService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = authorize
response = service.list_files(page_size: 10,
fields: 'nextPageToken, files(id, name)')
puts 'I TUOI FILES:'
puts 'NESSUN FILE TROVATO!' if response.files.empty?
response.files.each do |file|
puts "#{file.name} (#{file.id})"
end
Rispetto ad altri linguaggi, al primo avvio non si aprirà il browser, ma verrà mostrato il link da seguire; rimarrà in ascolto fino a che non avete finito la procedura.
Apritelo e autorizzate il programma usando le vostre credenziali Gmail.
Poi copiate il codice di autorizzazione dentro al file token.yaml; dopo di che il programma dovrebbe proseguire da solo.
Se avete fatto tutto corretto, dovreste vedere la lista degli ultimi 10 files modificati.
Enjoy!
ruby gem google google drive
Commentami!