Sha256: 7980a85532d8685238eca00b72b4a9e037340234ae32b8ec122de8db94373548

Contents?: true

Size: 1.16 KB

Versions: 21

Compression:

Stored size: 1.16 KB

Contents

require 'Base64'
require 'CGI'
require 'openssl'
require 'net/http'
require 'net/https'
require 'json'


# The City API keys
key = '**** YOUR CITY API KEY ****'
token = '**** YOUR CITY API TOKEN ****'


# API endpoint to get data from
path = '/groups'
url = 'https://api.onthecity.org' + path


# Build signature
current_time = Time.now.to_i.to_s
string_to_sign = current_time.to_s + 'GET' + url
unencoded_hmac = OpenSSL::HMAC.digest('sha256', key, string_to_sign)
unescaped_hmac = Base64.encode64(unencoded_hmac).chomp
hmac_signature = CGI.escape(unescaped_hmac)


# Build headers
headers = {}
headers['X-City-Sig'] = hmac_signature
headers['X-City-User-Token'] = token
headers['X-City-Time'] = current_time
headers['Accept'] = 'application/vnd.thecity.admin.v1+json'
headers['Content-Type'] = 'application/json'


# API Request
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # read into this
request = Net::HTTP::Get.new(uri.request_uri, headers)
response = http.request(request)
groups_data = JSON.parse(response.body)


# Output group names
groups_data['groups'].each do |group| 
  puts group['name']
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
the-city-admin-0.7.1 examples/thecity_headers.rb
the-city-admin-0.7.0 examples/thecity_headers.rb
the-city-admin-0.6.9 examples/thecity_headers.rb
the-city-admin-0.6.8 examples/thecity_headers.rb
the-city-admin-0.6.7 examples/thecity_headers.rb
the-city-admin-0.6.6 examples/thecity_headers.rb
the-city-admin-0.6.5 examples/thecity_headers.rb
the-city-admin-0.6.4 examples/thecity_headers.rb
the-city-admin-0.6.3 examples/thecity_headers.rb
the-city-admin-0.6.2 examples/thecity_headers.rb
the-city-admin-0.6.1 examples/thecity_headers.rb
the-city-admin-0.6.0 examples/thecity_headers.rb
the-city-admin-0.5.2 examples/thecity_headers.rb
the-city-admin-0.5.1 examples/thecity_headers.rb
the-city-admin-0.5.0 examples/thecity_headers.rb
the-city-admin-0.4.0 examples/thecity_headers.rb
the-city-admin-0.3.1 examples/thecity_headers.rb
the-city-admin-0.3.0 examples/thecity_headers.rb
the-city-admin-0.2.1 examples/thecity_headers.rb
the-city-admin-0.2.0 examples/thecity_headers.rb