fitgem_oauth2 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/fitgem_oauth2.gemspec +14 -0
- data/lib/fitgem_oauth2.rb +5 -0
- data/lib/fitgem_oauth2/client.rb +70 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4668e05ec00b938a76c13ca40aa46fe6f685b113
|
4
|
+
data.tar.gz: 90910ad066bb5eef0d6eb89b082a48da66c14164
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 788da8e8b805f8fb654d0c08695c4159cda613256724b183af15388e43cb63c72fcd3d51db9a4e32d42c7f6c4e00f87ea5294b215b6065b01a06d16a03b940b3
|
7
|
+
data.tar.gz: e331d68cb25eef55e7b8c3ab7f66e2eb0616948a48052f98b6d9a97447025e2e1fffa56dcf3dd53e46b298973af2f743580b8981e30a825cfdcae26ff1a334b2
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'fitgem_oauth2'
|
3
|
+
s.version = '0.0.1'
|
4
|
+
s.date = '2016-01-18'
|
5
|
+
s.summary = "This gem allows requesting data from Fitbit API using OAuth2"
|
6
|
+
s.description = "This gem allows requesting data from Fitbit API using OAuth2"
|
7
|
+
s.authors = ["Ankit Gupta"]
|
8
|
+
s.email = 'ankit.gupta2801@gmail.com'
|
9
|
+
s.files = %w(fitgem_oauth2.gemspec) + `git ls-files -z`.split("\x0").select { |f| f.start_with?("lib/") }
|
10
|
+
s.homepage = 'http://rubygems.org/gems/fitgem_oauth2'
|
11
|
+
s.license = 'MIT'
|
12
|
+
|
13
|
+
s.add_runtime_dependency 'faraday', '~> 0.9'
|
14
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'base64'
|
2
|
+
require 'faraday'
|
3
|
+
|
4
|
+
module FitgemOauth2
|
5
|
+
class Client
|
6
|
+
|
7
|
+
attr_accessor :token
|
8
|
+
|
9
|
+
attr_accessor :user_id
|
10
|
+
|
11
|
+
def initialize(opts)
|
12
|
+
@client_id = opts[:client_id]
|
13
|
+
if @client_id.nil?
|
14
|
+
puts "TODO. Raise an exception due to missing client id"
|
15
|
+
end
|
16
|
+
|
17
|
+
@client_secret = opts[:client_secret]
|
18
|
+
if @client_secret.nil?
|
19
|
+
puts "TODO. Raise an exception due to missing client secret"
|
20
|
+
end
|
21
|
+
|
22
|
+
@token = opts[:token]
|
23
|
+
if @token.nil?
|
24
|
+
puts "TODO. Raise an exception due to missing token"
|
25
|
+
end
|
26
|
+
|
27
|
+
@user_id = opts[:user_id]
|
28
|
+
if @user_id.nil?
|
29
|
+
puts "TODO. Raise an exception due to missing fitbit user id"
|
30
|
+
end
|
31
|
+
|
32
|
+
@connection = Faraday.new("https://api.fitbit.com")
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def activities_on_date(date)
|
37
|
+
connection.get "1/user/#{user_id}/activities/date/#{format_date(date)}.json" do |request|
|
38
|
+
request.headers['Authorization'] = "Bearer #{token}"
|
39
|
+
request.headers['Content-Type'] = "application/x-www-form-urlencoded"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def refresh_access_token(refresh_token)
|
44
|
+
response = connection.post('/oauth2/token') do |request|
|
45
|
+
encoded = Base64.strict_encode64("#{@client_id}:#{@client_secret}")
|
46
|
+
request.headers['Authorization'] = "Basic #{encoded}"
|
47
|
+
request.headers['Content-Type'] = "application/x-www-form-urlencoded"
|
48
|
+
request.params['grant_type'] = "refresh_token"
|
49
|
+
request.params['refresh_token'] = refresh_token
|
50
|
+
end
|
51
|
+
response.body
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
attr_accessor :connection
|
57
|
+
|
58
|
+
def format_date(date)
|
59
|
+
date
|
60
|
+
end
|
61
|
+
|
62
|
+
def get(url)
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
def raw_get(url)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
metadata
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fitgem_oauth2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ankit Gupta
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-01-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.9'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.9'
|
27
|
+
description: This gem allows requesting data from Fitbit API using OAuth2
|
28
|
+
email: ankit.gupta2801@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- fitgem_oauth2.gemspec
|
34
|
+
- lib/fitgem_oauth2.rb
|
35
|
+
- lib/fitgem_oauth2/client.rb
|
36
|
+
homepage: http://rubygems.org/gems/fitgem_oauth2
|
37
|
+
licenses:
|
38
|
+
- MIT
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubyforge_project:
|
56
|
+
rubygems_version: 2.4.6
|
57
|
+
signing_key:
|
58
|
+
specification_version: 4
|
59
|
+
summary: This gem allows requesting data from Fitbit API using OAuth2
|
60
|
+
test_files: []
|