class Auth

Public Class Methods

new(client_id, client_secret) click to toggle source
# File lib/arcgis_vrps/auth.rb, line 5
def initialize(client_id, client_secret)
        if client_id.nil? || client_id.empty? || client_secret.nil? || client_secret.empty?
        raise ArgumentError, "Both Client ID & Client Secret has to be set"
    end

        @client_id = client_id
        @client_secret = client_secret
end

Public Instance Methods

generateToken() click to toggle source
# File lib/arcgis_vrps/auth.rb, line 14
def generateToken
    begin

                url = "https://www.arcgis.com/sharing/rest/oauth2/token"
                escaped_url = URI.encode(url)
                uri = URI.parse(escaped_url)
                req = Net::HTTP::Post.new(uri.to_s)
                 
                # Expiration is set to 20160 minutes = 2 weeks
                req.set_form_data(
                        f: 'json',
                        client_id: @client_id,
                        client_secret: @client_secret,
                        grant_type: 'client_credentials',
                        expiration: 20160
                  )

                http = Net::HTTP.new(uri.hostname, uri.port)
                http.use_ssl = true
                 
                res = http.request(req)

                token = JSON.parse(res.body)['access_token']
                puts "\n"+res.body
                return token
        rescue => e
                puts "==== Error in generating token: "
                puts e
        end
end