aweber 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -67,6 +67,24 @@ oauth = AWeber::OAuth.new('consumer_key', 'consumer_secret')
67
67
  oauth.authorize_with_access(YOUR_ACCESS_TOKEN, YOUR_ACCESS_TOKEN_SECRET)
68
68
  aweber = AWeber::Base.new(oauth)
69
69
 
70
+ h3. I want to distribute my app as a public app
71
+
72
+ If you intend to distribute your app to many AWeber customers via source code ("See here for more info":https://labs.aweber.com/getting_started/main#app_type), you will want to use the app id to authenticate your app as follows.
73
+
74
+ h4. Build the authorize_app url:
75
+
76
+ bc. require 'aweber'
77
+ app_id = '1XXXXXXX8' #paste you app id from labs.aweber.com here
78
+ auth_url = 'https://auth.aweber.com/1.0/oauth/authorize_app/' + app_id
79
+ puts "please go to " + auth_url
80
+
81
+ h4. Verification Code
82
+
83
+ After you do the above step, it will output a “Verification Code”. Copy this into @authorize_with_authorization_code@
84
+
85
+ bc. aweber = AWeber::Base.authorize_with_authorization_code('My|Authcode|Pasted|Here')
86
+
87
+ You can now use the aweber object to access data from the account that authorized your app!
70
88
 
71
89
  h2. Usage
72
90
 
@@ -131,6 +149,8 @@ new_subscriber["name"] = "My New Subscriber"
131
149
  aweber.account.lists.find_by_name("mylistname").subscribers.create(new_subscriber)
132
150
  #Or alternatively: aweber.account.lists[list_id].subscribers.create(new_subscriber)
133
151
 
152
+
153
+
134
154
  h2. Note on Patches/Pull Requests
135
155
 
136
156
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "aweber"
4
- s.version = "1.6.0"
4
+ s.version = "1.6.1"
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.summary = "Ruby interface to AWeber's API"
7
7
  s.description = "Ruby interface to AWeber's API"
@@ -35,6 +35,24 @@ module AWeber
35
35
  "#<AWeber::Base />"
36
36
  end
37
37
 
38
+ # Authorize an app with an auth code from 1.0/oauth/authorize_app/app_id
39
+ #
40
+ # @param [string] auth_code The authorization code received from
41
+ # /authorize_app to be used for authorization.
42
+ #
43
+ def self.authorize_with_authorization_code(auth_code)
44
+ consumer_token, consumer_secret, request_token, request_secret, verifier =
45
+ auth_code.split('|')
46
+ oauth = AWeber::OAuth.new(consumer_token, consumer_secret)
47
+
48
+ request_hash = {:oauth_token => request_token, :oauth_token_secret => request_secret}
49
+ request = ::OAuth::RequestToken.from_hash(oauth.consumer, request_hash)
50
+
51
+ oauth.request_token = request
52
+ oauth.authorize_with_verifier(verifier)
53
+ self.new(oauth)
54
+ end
55
+
38
56
  private
39
57
 
40
58
  def handle_errors(response, uri)
@@ -27,6 +27,14 @@ module AWeber
27
27
  @request_token ||= consumer.get_request_token(options)
28
28
  end
29
29
 
30
+ # Set a Request Token
31
+ #
32
+ # @param [Request Token] request_token the oauth request token to be set.
33
+ #
34
+ def request_token=(request_token)
35
+ @request_token = request_token
36
+ end
37
+
30
38
  # Get an Access Token from a Request Token using the
31
39
  # +verifier+ code.
32
40
  #
@@ -11,6 +11,9 @@ module AWeber
11
11
  api_attr :total_unique_displays
12
12
  api_attr :type
13
13
  api_attr :unique_conversion_percentage
14
+ api_attr :html_source_link
15
+ api_attr :javascript_source_link
16
+
14
17
  end
15
18
  end
16
19
  end
@@ -20,4 +20,45 @@ describe AWeber::Base do
20
20
  @oauth.should_receive(:get).with("https://api.aweber.com/1.0/foo")
21
21
  @aweber.send(:get, "/foo")
22
22
  end
23
+
24
+ it "should set oauth request token" do
25
+ oauth_stub = double('oauth consumer')
26
+ oauth_stub.stub(:consumer) { 'consumer' }
27
+ oauth_stub.stub(:request_token=)
28
+ oauth_stub.stub(:authorize_with_verifier) { 'oauth' }
29
+
30
+ rtoken = double('request token')
31
+ rtoken.stub(:params=)
32
+
33
+ oauth_stub.should_receive(:request_token=).with(rtoken)
34
+ AWeber::OAuth.stub(:new) { oauth_stub }
35
+ OAuth::RequestToken.stub(:new) { rtoken }
36
+
37
+ aweber = AWeber::Base.authorize_with_authorization_code('a|b|c|d|verifier')
38
+ end
39
+
40
+ it "should delegate authorization to oauth object" do
41
+ oauth_stub = double('oauth consumer')
42
+ oauth_stub.stub(:consumer) { 'consumer' }
43
+ oauth_stub.stub(:request_token=)
44
+ oauth_stub.stub(:authorize_with_verifier) { 'oauth' }
45
+
46
+ oauth_stub.should_receive(:authorize_with_verifier).with('verifier')
47
+ AWeber::OAuth.stub(:new) { oauth_stub }
48
+ aweber = AWeber::Base.authorize_with_authorization_code('a|b|c|d|verifier')
49
+ end
50
+
51
+ it "should return new aweber base instance" do
52
+ oauth_stub = double('oauth consumer')
53
+ oauth_stub.stub(:consumer) { 'consumer' }
54
+ oauth_stub.stub(:request_token=)
55
+ oauth_stub.stub(:authorize_with_verifier) { 'oauth' }
56
+
57
+ base_stub = double('aweber base')
58
+ AWeber::Base.stub(:new) { base_stub }
59
+
60
+ AWeber::OAuth.stub(:new) { oauth_stub }
61
+ aweber = AWeber::Base.authorize_with_authorization_code('a|b|c|d|verifier')
62
+ aweber.should == base_stub
63
+ end
23
64
  end
@@ -10,5 +10,7 @@
10
10
  "http_etag": "\"be17a3eae7a396181c523ef2709acf2be037f0d8-ca5feee2b7fbb6febfca8af5541541ea960aaedb\"",
11
11
  "total_displays": 33,
12
12
  "resource_type_link": "https://api.aweber.com/1.0/#web_form",
13
+ "javascript_source_link": "http://forms.aweber.com/form/71/208918171.js",
14
+ "html_source_link": "http://forms.aweber.com/form/71/208918171.htm",
13
15
  "id": 208918171
14
16
  }
@@ -44,7 +44,7 @@ describe AWeber::OAuth do
44
44
  aweber = AWeber::OAuth.new('token', 'secret')
45
45
  aweber.request_token.should == rtoken
46
46
  end
47
-
47
+
48
48
  it "should be able to authorize with a verifier code" do
49
49
  consumer = double('oauth consumer')
50
50
  rtoken = double('request token')
@@ -88,4 +88,10 @@ describe AWeber::OAuth do
88
88
  aweber.post("/foo")
89
89
  end
90
90
 
91
+ it "should be able to set a request token" do
92
+ rtoken = double('request token')
93
+ oauth = AWeber::OAuth.new('token', 'secret')
94
+ oauth.request_token = rtoken
95
+ oauth.request_token.should == rtoken
96
+ end
91
97
  end
@@ -18,4 +18,7 @@ describe AWeber::Resources::WebForm do
18
18
  it { should respond_to :total_unique_displays }
19
19
  it { should respond_to :type }
20
20
  it { should respond_to :unique_conversion_percentage }
21
+ it { should respond_to :html_source_link }
22
+ it { should respond_to :javascript_source_link }
23
+
21
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aweber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-04 00:00:00.000000000 Z
12
+ date: 2013-02-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oauth