oa-oauth 0.2.0.beta3 → 0.2.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,5 +26,6 @@ module OmniAuth
26
26
  autoload :Bitly, 'omniauth/strategies/bitly'
27
27
  autoload :Vimeo, 'omniauth/strategies/vimeo'
28
28
  autoload :YouTube, 'omniauth/strategies/you_tube'
29
+ autoload :Hyves, 'omniauth/strategies/hyves'
29
30
  end
30
31
  end
@@ -20,6 +20,8 @@ module OmniAuth
20
20
  :authorize_path => '/accounts/OAuthAuthorizeToken'
21
21
  }
22
22
 
23
+ options[:scope] ||= "http://www.google.com/m8/feeds"
24
+
23
25
  super(app, :google, consumer_key, consumer_secret, client_options, options)
24
26
  end
25
27
 
@@ -58,7 +60,7 @@ module OmniAuth
58
60
 
59
61
  # Monkeypatch OmniAuth to pass the scope in the consumer.get_request_token call
60
62
  def request_phase
61
- request_token = consumer.get_request_token({:oauth_callback => callback_url}, {:scope => "http://www.google.com/m8/feeds"})
63
+ request_token = consumer.get_request_token({:oauth_callback => callback_url}, {:scope => options[:scope]})
62
64
 
63
65
  (session['oauth']||={})[name.to_s] = {'callback_confirmed' => request_token.callback_confirmed?, 'request_token' => request_token.token, 'request_secret' => request_token.secret}
64
66
  r = Rack::Response.new
@@ -0,0 +1,67 @@
1
+ require 'omniauth/oauth'
2
+ require 'multi_json'
3
+
4
+
5
+ module OmniAuth
6
+ module Strategies
7
+ class Hyves < OmniAuth::Strategies::OAuth
8
+ def initialize(app, consumer_key = nil, consumer_secret = nil, options = {}, &block)
9
+ client_options = {
10
+ :request_token_path => request_token_path,
11
+ :authorize_path => "http://www.hyves.nl/api/authorize",
12
+ :access_token_path => access_token_path,
13
+ :http_method => :get,
14
+ :scheme => :header
15
+ }
16
+ super(app, :hyves, consumer_key, consumer_secret, client_options, options, &block)
17
+ end
18
+
19
+ def auth_hash
20
+ hash = user_hash(@access_token)
21
+
22
+ {
23
+ "provider" => "hyves",
24
+ "uid" => hash["userid"],
25
+ "user_info" => {
26
+ "name" => hash["firstname"] + " " + hash["lastname"],
27
+ "first_name" => hash["firstname"],
28
+ "last_name" => hash["lastname"]
29
+ },
30
+ "credentials" => {
31
+ "token" => @access_token.token,
32
+ "secret" => @access_token.secret
33
+ }
34
+ }
35
+ end
36
+
37
+ def user_hash(access_token)
38
+ rsp = MultiJson.decode( access_token.get("http://data.hyves-api.nl/?userid=#{access_token.params[:userid]}&ha_method=users.get&#{default_options}").body )
39
+ rsp["user"].first
40
+ end
41
+
42
+ def request_token_path
43
+ "http://data.hyves-api.nl/?#{request_token_options}&#{default_options}"
44
+ end
45
+
46
+ def access_token_path
47
+ "http://data.hyves-api.nl/?#{access_token_options}&#{default_options}"
48
+ end
49
+
50
+ def default_options
51
+ to_params( { :ha_version => "2.0", :ha_format => "json", :ha_fancylayout => false } )
52
+ end
53
+
54
+ def request_token_options
55
+ to_params( { :methods => "users.get,friends.get,wwws.create", :ha_method => "auth.requesttoken", :strict_oauth_spec_response => true } )
56
+ end
57
+
58
+ def access_token_options
59
+ to_params( { :ha_method => "auth.accesstoken", :strict_oauth_spec_response => true } )
60
+ end
61
+
62
+ def to_params(options)
63
+ options.collect { |key, value| "#{key}=#{value}"}.join('&')
64
+ end
65
+ end
66
+ end
67
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: oa-oauth
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: 6
5
- version: 0.2.0.beta3
5
+ version: 0.2.0.beta4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael Bleigh
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-03 00:00:00 -06:00
13
+ date: 2011-02-11 00:00:00 -06:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - "="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.2.0.beta3
23
+ version: 0.2.0.beta4
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: *id001
@@ -152,6 +152,7 @@ files:
152
152
  - lib/omniauth/strategies/goodreads.rb
153
153
  - lib/omniauth/strategies/google.rb
154
154
  - lib/omniauth/strategies/gowalla.rb
155
+ - lib/omniauth/strategies/hyves.rb
155
156
  - lib/omniauth/strategies/identica.rb
156
157
  - lib/omniauth/strategies/linked_in.rb
157
158
  - lib/omniauth/strategies/meetup.rb
@@ -183,7 +184,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
184
  requirements:
184
185
  - - ">="
185
186
  - !ruby/object:Gem::Version
186
- hash: 1607538061913859967
187
+ hash: 3188666288228867303
187
188
  segments:
188
189
  - 0
189
190
  version: "0"