Sha256: 21718be53440f0dc45453b11210c8de2e494b7895530082c5359eac6ec2ebe4a
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
require 'omniauth-oauth2' require 'multi_json' require 'multi_xml' module OmniAuth module Strategies class ConstantContact2 < OmniAuth::Strategies::OAuth2 DEFAULT_RESPONSE_TYPE = 'code' DEFAULT_GRANT = 'authorization_code' option :name, "constantcontact" option :client_options, { :site => 'https://oauth2.constantcontact.com', :authorize_url => '/oauth2/oauth/siteowner/authorize', :token_url => '/oauth2/oauth/token' } def authorize_params super.tap do |params| params[:response_type] ||= DEFAULT_RESPONSE_TYPE params[:client_id] = client.id end end def token_params super.tap do |params| params[:grant_type] ||= DEFAULT_GRANT params[:client_id] = client.id params[:client_secret] = client.secret end end uid do request.params['username'] end info do entries = raw_info['feed']['entry'] if entries.kind_of?(Array) { :email_entries => entries.map{|x|x["content"]["Email"]["EmailAddress"]} } else { :email => entries["content"]["Email"]["EmailAddress"] } end end extra do { 'raw_info' => raw_info } end def raw_info @raw_info ||= MultiXml.parse(access_token.get("https://api.constantcontact.com/ws/customers/" + request.params['username'] + "/settings/emailaddresses").body) end end end end OmniAuth.config.add_camelization 'constantcontact', 'ConstantContact2'
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
omniauth-constantcontact2-1.0.4 | lib/omniauth/strategies/constantcontact2.rb |
omniauth-constantcontact2-1.0.3 | lib/omniauth/strategies/constantcontact2.rb |