Class: LinkedIn::OAuth2
- Inherits:
-
OAuth2::Client
- Object
- OAuth2::Client
- LinkedIn::OAuth2
- Defined in:
- lib/linked_in/oauth2.rb
Overview
The LinkedIn::OAuth2::Client class. Inherits directly from [intreda/oauth2](github.com/intridea/oauth2)‘s OAuth2::Client
LinkedIn::OAuth2 sets the following default options:
-
site = “www.linkedin.com”
-
token_url = “/uas/oauth2/accessToken”
-
authorize_url = “/uas/oauth2/authorization”
More details on LinkedIn’s Authorization process can be found here: developer.linkedin.com/documents/authentication
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
Instance Method Summary collapse
-
#auth_code_url(options = {}) ⇒ Object
Generates the URL users use to sign into your application.
-
#get_access_token(code = nil, options = {}) ⇒ Object
Returns the access token string for the newly authenticated user.
-
#initialize(client_id = LinkedIn.config.client_id, client_secret = LinkedIn.config.client_secret, options = {}) {|builder| ... } ⇒ OAuth2
constructor
Instantiate a new OAuth 2.0 client using your client ID (aka API Key) and client secret (aka Secret Key).
Constructor Details
#initialize(client_id = LinkedIn.config.client_id, client_secret = LinkedIn.config.client_secret, options = {}) {|builder| ... } ⇒ OAuth2
Instantiate a new OAuth 2.0 client using your client ID (aka API Key) and client secret (aka Secret Key).
You should set the client_id and client_secret in the config.
LinkedIn.configure do |config|
config.client_id = ENV["LINKEDIN_CLIENT_ID"]
config.client_secret = ENV["LINKEDIN_CLIENT_SECRET"]
end
This will let you initialize with zero arguments.
If you have already set the client_id and client_secret in your config, the first and only argument can be the options hash.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/linked_in/oauth2.rb', line 42 def initialize(client_id=LinkedIn.config.client_id, client_secret=LinkedIn.config.client_secret, = {}, &block) if client_id.is_a? Hash = client_id client_id = LinkedIn.config.client_id end = () super client_id, client_secret, , &block @redirect_uri = [:redirect_uri] if self.[:raise_errors] check_credentials!(client_id, client_secret) end end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
13 14 15 |
# File 'lib/linked_in/oauth2.rb', line 13 def access_token @access_token end |
Instance Method Details
#auth_code_url(options = {}) ⇒ Object
Generates the URL users use to sign into your application.
Once a user enters their LinkedIn credentials, they will be redirected to your redirect_uri with the code parameter attached to it. The value of the code parameter can be used to get an access token.
We recommend you set your ‘client_id, client_secret, and redirect_uri in the LinkedIn.configure block. They can also be passed in as options.
90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/linked_in/oauth2.rb', line 90 def auth_code_url(={}) = () if self.[:raise_errors] check_redirect_uri!() end @redirect_uri = [:redirect_uri] self.auth_code.() end |
#get_access_token(code = nil, options = {}) ⇒ Object
Returns the access token string for the newly authenticated user.
It also sets the access_token field on this LinkedIn::OAuth2 instance.
The required code
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/linked_in/oauth2.rb', line 120 def get_access_token(code=nil, ={}) check_for_code!(code) = () if self.[:raise_errors] check_access_code_url!() end tok = self.auth_code.get_token(code, .map { |key, value| [key.to_s, value] }.to_h) self.access_token = LinkedIn::AccessToken.new(tok.token, tok.expires_in, tok.expires_at) return self.access_token rescue ::OAuth2::Error => e raise OAuthError.new(e.response) end |