class Google::Auth::ClientId

Representation of an application's identity for user authorization flows.

Constants

CLIENT_ID
CLIENT_SECRET
INSTALLED_APP
MISSING_TOP_LEVEL_ELEMENT_ERROR
WEB_APP

Attributes

default[RW]
id[R]

Text identifier of the client ID @return [String]

secret[R]

Secret associated with the client ID @return [String]

Public Class Methods

from_file(file) click to toggle source

Constructs a Client ID from a JSON file downloaded from the Google Developers Console.

@param [String, File] file

Path of file to read from

@return [Google::Auth::ClientID]

# File lib/googleauth/client_id.rb, line 80
def self.from_file(file)
  raise 'File can not be nil.' if file.nil?
  File.open(file.to_s) do |f|
    json = f.read
    config = MultiJson.load json
    from_hash(config)
  end
end
from_hash(config) click to toggle source

Constructs a Client ID from a previously loaded JSON file. The hash structure should match the expected JSON format.

@param [hash] config

Parsed contents of the JSON file

@return [Google::Auth::ClientID]

# File lib/googleauth/client_id.rb, line 96
def self.from_hash(config)
  raise 'Hash can not be nil.' if config.nil?
  raw_detail = config[INSTALLED_APP] || config[WEB_APP]
  raise MISSING_TOP_LEVEL_ELEMENT_ERROR if raw_detail.nil?
  ClientId.new(raw_detail[CLIENT_ID], raw_detail[CLIENT_SECRET])
end
new(id, secret) click to toggle source

Initialize the Client ID

@param [String] id

Text identifier of the client ID

@param [String] secret

Secret associated with the client ID

@note Direction instantion is discouraged to avoid embedding IDs

& secrets in source. See {#from_file} to load from
`client_secrets.json` files.
# File lib/googleauth/client_id.rb, line 66
def initialize(id, secret)
  CredentialsLoader.warn_if_cloud_sdk_credentials id
  raise 'Client id can not be nil' if id.nil?
  raise 'Client secret can not be nil' if secret.nil?
  @id = id
  @secret = secret
end