gplus 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +23 -9
- data/lib/gplus/activity.rb +1 -1
- data/lib/gplus/client.rb +10 -3
- data/lib/gplus/version.rb +1 -1
- metadata +6 -6
data/README.md
CHANGED
@@ -6,9 +6,7 @@ GPlus is a complete implementation of the Google+ API, with help from OAuth2 and
|
|
6
6
|
|
7
7
|
I'm aiming to produce something light-weight, well documented, and thoroughly tested.
|
8
8
|
|
9
|
-
It currently has full support for People and Activities,
|
10
|
-
|
11
|
-
Unauthorized requests for public resources is coming in version 0.3.0 (aiming for 2011/09/17)
|
9
|
+
It currently has full support for the People and Activities APIs, using either OAuth requests for private data or API key requests for public data.
|
12
10
|
|
13
11
|
## Installation
|
14
12
|
|
@@ -24,16 +22,24 @@ Next, [create an OAuth 2.0 client ID](http://code.google.com/apis/console#access
|
|
24
22
|
|
25
23
|
You can then specify additional redirect URIs and allowed javascript origins.
|
26
24
|
|
27
|
-
|
25
|
+
## Unauthorized requests (for public data)
|
26
|
+
|
27
|
+
Create an API client using your API key:
|
28
|
+
|
29
|
+
@client = Gplus::Client.new(
|
30
|
+
:api_key => 'YOUR_API_KEY'
|
31
|
+
)
|
32
|
+
|
33
|
+
You can now make requests for public data using the methods below for People and Activities.
|
28
34
|
|
29
35
|
## Authorized requests
|
30
36
|
|
31
|
-
|
37
|
+
First, create an API client using your Client ID, Client Secret, and one of the redirect URIs you have allowed:
|
32
38
|
|
33
39
|
@client = Gplus::Client.new(
|
34
40
|
:client_id => 'YOUR_CLIENT_ID',
|
35
41
|
:client_secret => 'YOUR_CLIENT_SECRET',
|
36
|
-
:redirect_uri => 'http://example.com/
|
42
|
+
:redirect_uri => 'http://example.com/oauth/callback'
|
37
43
|
)
|
38
44
|
|
39
45
|
Generate an authorization URL, and use it in a view:
|
@@ -45,14 +51,22 @@ Generate an authorization URL, and use it in a view:
|
|
45
51
|
|
46
52
|
After the user authorizes your app, they will be redirected to your `redirect_uri`. Store `params[:code]`:
|
47
53
|
|
48
|
-
|
49
|
-
|
54
|
+
class OauthController < ApplicationController
|
55
|
+
def callback
|
56
|
+
current_user.update_attributes(:oauth_code => params[:code])
|
57
|
+
end
|
50
58
|
end
|
51
59
|
|
52
60
|
Finally, create an authorized client instance:
|
53
61
|
|
54
62
|
client.authorize(current_user.oauth_code)
|
55
63
|
|
64
|
+
If you have an OAuth code stored, you can use it to initialize your API client:
|
65
|
+
|
66
|
+
@client = Gplus::Client.new(
|
67
|
+
:token => current_user.oauth_code,
|
68
|
+
)
|
69
|
+
|
56
70
|
## [People](http://developers.google.com/+/api/latest/people)
|
57
71
|
|
58
72
|
Get a person's profile with `client.get_person`:
|
@@ -83,7 +97,7 @@ The activity will be returned as a nested hash:
|
|
83
97
|
|
84
98
|
List a person's activities with `client.list_activities`:
|
85
99
|
|
86
|
-
activities = client.list_activities(
|
100
|
+
activities = client.list_activities(person_id)
|
87
101
|
|
88
102
|
The list will be returned as a nested hash. The actual activities are in the `:items` array:
|
89
103
|
|
data/lib/gplus/activity.rb
CHANGED
@@ -5,7 +5,7 @@ module Gplus
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def list_activities(person_id, results = 20, page = nil)
|
8
|
-
get("people/#{person_id}/activities/public
|
8
|
+
get("people/#{person_id}/activities/public", { :maxResults => results, :pageToken => page })
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
data/lib/gplus/client.rb
CHANGED
@@ -4,6 +4,7 @@ require 'gplus/person'
|
|
4
4
|
module Gplus
|
5
5
|
class Client
|
6
6
|
def initialize(options = {})
|
7
|
+
@api_key = options[:api_key]
|
7
8
|
@client_id = options[:client_id]
|
8
9
|
@client_secret = options[:client_secret]
|
9
10
|
@redirect_uri = options[:redirect_uri]
|
@@ -28,11 +29,17 @@ module Gplus
|
|
28
29
|
|
29
30
|
private
|
30
31
|
def access_token
|
31
|
-
|
32
|
+
if @token
|
33
|
+
@access_token ||= OAuth2::AccessToken.new(@oauth_client, @token)
|
34
|
+
end
|
32
35
|
end
|
33
36
|
|
34
|
-
def get(path)
|
35
|
-
|
37
|
+
def get(path, params = {})
|
38
|
+
if access_token
|
39
|
+
response = access_token.get("v1/#{path}", params)
|
40
|
+
else
|
41
|
+
response = @oauth_client.request(:get, "v1/#{path}", { :params => params.merge(:key => @api_key) })
|
42
|
+
end
|
36
43
|
MultiJson.decode(response.body)
|
37
44
|
end
|
38
45
|
end
|
data/lib/gplus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gplus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-17 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement: &
|
16
|
+
requirement: &17792180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *17792180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: oauth2
|
27
|
-
requirement: &
|
27
|
+
requirement: &17784300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0.5'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *17784300
|
36
36
|
description: A complete implementation of the Google plus API for Ruby
|
37
37
|
email:
|
38
38
|
- nicholas@2suggestions.com.au
|