class PocketApi::Connection

Attributes

client_key[RW]
request_token[RW]

Public Class Methods

generate_access_token(request_token=@request_token) click to toggle source
# File lib/pocket_api/connection.rb, line 29
def generate_access_token(request_token=@request_token)
  response = post("/v3/oauth/authorize", :body => MultiJson.dump({:code => request_token, :consumer_key => @client_key}), :headers => {"Content-Type" => "application/json; charset=UTF-8", "X-Accept" => "application/json"})
  raise response.headers["X-Error"] if response.headers["X-Error"]
  
  response.parsed_response["access_token"]
end
generate_authorize_url(redirect_uri, state=nil) click to toggle source
# File lib/pocket_api/connection.rb, line 36
def generate_authorize_url(redirect_uri, state=nil)
  @request_token = generate_request_token({:redirect_uri => redirect_uri})
  
  "#{default_options[:base_uri]}/auth/authorize?request_token=#{CGI.escape(request_token)}&redirect_uri=#{CGI.escape(redirect_uri)}#{"&state=#{CGI.escape(state)}"if state}"
end
generate_request_token(body_options={}, headers_options={}) click to toggle source

OAuth authorization Helpers Sample Workflow:

  1. generate_authorize_url, redirect user to URL

  2. generate_access_token if user comes back

  3. Do a sample call to API to see if it works

# File lib/pocket_api/connection.rb, line 19
def generate_request_token(body_options={}, headers_options={})
  response = post("/v3/oauth/request", :body => MultiJson.dump({:consumer_key => @client_key}.merge(body_options)), :headers => {"Content-Type" => "application/json; charset=UTF-8", "X-Accept" => "application/json"}.merge(headers_options))
  if response.success? && response.parsed_response["code"]
    # Should be a string body like "code=12345678"
    @request_token = response.parsed_response["code"]
  else
    raise "could not generate request token: #{response.inspect}"
  end
end