fb_graph 0.7.2 → 0.7.3
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.rdoc +1 -1
- data/VERSION +1 -1
- data/fb_graph.gemspec +8 -2
- data/lib/fb_graph/connections/accounts.rb +22 -0
- data/lib/fb_graph/connections/feed.rb +69 -0
- data/lib/fb_graph/node.rb +1 -1
- data/lib/fb_graph/user.rb +3 -6
- data/spec/fake_json/users/accounts/matake_private.json +14 -0
- data/spec/fake_json/users/accounts/matake_private_with_manage_pages_permission.json +16 -0
- data/spec/fake_json/users/accounts/matake_public.json +6 -0
- data/spec/fb_graph/connections/accounts_spec.rb +47 -0
- metadata +10 -4
data/README.rdoc
CHANGED
@@ -8,7 +8,7 @@ A full-stack Facebook Graph API wrapper in Ruby.
|
|
8
8
|
|
9
9
|
== Resources
|
10
10
|
|
11
|
-
* View RDoc on RDoc.info (http://rdoc.info/
|
11
|
+
* View RDoc on RDoc.info (http://rdoc.info/github/nov/fb_graph/master/frames)
|
12
12
|
* View Source on GitHub (http://github.com/nov/fb_graph)
|
13
13
|
* Report Issues on GitHub (http://github.com/nov/fb_graph/issues)
|
14
14
|
* Facebook fan page (http://www.facebook.com/pages/FbGraph/117513961602338)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.3
|
data/fb_graph.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fb_graph}
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["nov matake"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-07}
|
13
13
|
s.description = %q{A Ruby wrapper for Facebook Graph API}
|
14
14
|
s.email = %q{nov@matake.jp}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
"lib/fb_graph/comparison.rb",
|
38
38
|
"lib/fb_graph/connection.rb",
|
39
39
|
"lib/fb_graph/connections.rb",
|
40
|
+
"lib/fb_graph/connections/accounts.rb",
|
40
41
|
"lib/fb_graph/connections/activities.rb",
|
41
42
|
"lib/fb_graph/connections/albums.rb",
|
42
43
|
"lib/fb_graph/connections/attending.rb",
|
@@ -109,6 +110,9 @@ Gem::Specification.new do |s|
|
|
109
110
|
"spec/fake_json/posts/likes/post_without_access_token.json",
|
110
111
|
"spec/fake_json/posts/platform_private.json",
|
111
112
|
"spec/fake_json/posts/platform_public.json",
|
113
|
+
"spec/fake_json/users/accounts/matake_private.json",
|
114
|
+
"spec/fake_json/users/accounts/matake_private_with_manage_pages_permission.json",
|
115
|
+
"spec/fake_json/users/accounts/matake_public.json",
|
112
116
|
"spec/fake_json/users/activities/arjun_private.json",
|
113
117
|
"spec/fake_json/users/activities/arjun_public.json",
|
114
118
|
"spec/fake_json/users/albums/matake_private.json",
|
@@ -162,6 +166,7 @@ Gem::Specification.new do |s|
|
|
162
166
|
"spec/fb_graph/collection_spec.rb",
|
163
167
|
"spec/fb_graph/comment_spec.rb",
|
164
168
|
"spec/fb_graph/connection_spec.rb",
|
169
|
+
"spec/fb_graph/connections/accounts_spec.rb",
|
165
170
|
"spec/fb_graph/connections/activities_spec.rb",
|
166
171
|
"spec/fb_graph/connections/albums_spec.rb",
|
167
172
|
"spec/fb_graph/connections/attending_spec.rb",
|
@@ -222,6 +227,7 @@ Gem::Specification.new do |s|
|
|
222
227
|
"spec/fb_graph/collection_spec.rb",
|
223
228
|
"spec/fb_graph/comment_spec.rb",
|
224
229
|
"spec/fb_graph/connection_spec.rb",
|
230
|
+
"spec/fb_graph/connections/accounts_spec.rb",
|
225
231
|
"spec/fb_graph/connections/activities_spec.rb",
|
226
232
|
"spec/fb_graph/connections/albums_spec.rb",
|
227
233
|
"spec/fb_graph/connections/attending_spec.rb",
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module FbGraph
|
2
|
+
module Connections
|
3
|
+
module Accounts
|
4
|
+
# == Fetching Pages owned by the current user.
|
5
|
+
#
|
6
|
+
# If the manage_pages permission has been granted,
|
7
|
+
# this connection also yields access_tokens that can be used to query the Graph API on behalf of the page.
|
8
|
+
#
|
9
|
+
# ref) http://developers.facebook.com/docs/reference/api/user
|
10
|
+
#
|
11
|
+
# FbGraph::User.me(ACCESS_TOKEN).accounts
|
12
|
+
# => array of FbGraph::Page
|
13
|
+
def accounts(options = {})
|
14
|
+
accounts = self.connection(:accounts, options)
|
15
|
+
accounts.map! do |account|
|
16
|
+
account[:access_token] ||= options[:access_token] || self.access_token
|
17
|
+
FbGraph::Page.new(account.delete(:id), account)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,6 +1,32 @@
|
|
1
1
|
module FbGraph
|
2
2
|
module Connections
|
3
3
|
module Feed
|
4
|
+
# == Fetching Wall posts
|
5
|
+
#
|
6
|
+
# === User Wall
|
7
|
+
#
|
8
|
+
# FbGraph::User.new(username).feed
|
9
|
+
# # => Array of FbGraph::Post
|
10
|
+
#
|
11
|
+
# === Page Wall
|
12
|
+
#
|
13
|
+
# FbGraph::Page.new(page_id).feed
|
14
|
+
# # => Array of FbGraph::Post
|
15
|
+
#
|
16
|
+
# === Application Wall
|
17
|
+
#
|
18
|
+
# FbGraph::Application.new(page_id).feed
|
19
|
+
# # => Array of FbGraph::Post
|
20
|
+
#
|
21
|
+
# === Event Wall
|
22
|
+
#
|
23
|
+
# FbGraph::Event.new(page_id).feed
|
24
|
+
# # => Array of FbGraph::Post
|
25
|
+
#
|
26
|
+
# === Group Wall
|
27
|
+
#
|
28
|
+
# FbGraph::Group.new(page_id).feed
|
29
|
+
# # => Array of FbGraph::Post
|
4
30
|
def feed(options = {})
|
5
31
|
posts = self.connection(:feed, options)
|
6
32
|
posts.map! do |post|
|
@@ -10,6 +36,49 @@ module FbGraph
|
|
10
36
|
end
|
11
37
|
end
|
12
38
|
|
39
|
+
# == Updating Wall
|
40
|
+
#
|
41
|
+
# * See supported arguments here http://developers.facebook.com/docs/reference/api/post
|
42
|
+
# * You need admin user's access_token to update Page/Application/Event/Group wall as itself
|
43
|
+
#
|
44
|
+
# === User Wall
|
45
|
+
#
|
46
|
+
# me = FbGraph::User.me(ACCESS_TOKEN)
|
47
|
+
# me.feed!(
|
48
|
+
# :message => 'Updating via FbGraph'
|
49
|
+
# )
|
50
|
+
#
|
51
|
+
# === Page Wall
|
52
|
+
#
|
53
|
+
# page = FbGraph::Page.new(page_id)
|
54
|
+
# page.feed!(
|
55
|
+
# :access_token => ACCESS_TOKEN,
|
56
|
+
# :message => 'Updating via FbGraph'
|
57
|
+
# )
|
58
|
+
#
|
59
|
+
# === Application Wall
|
60
|
+
#
|
61
|
+
# application = FbGraph::Page.new(application_id)
|
62
|
+
# application.feed!(
|
63
|
+
# :access_token => ACCESS_TOKEN,
|
64
|
+
# :message => 'Updating via FbGraph'
|
65
|
+
# )
|
66
|
+
#
|
67
|
+
# === Event Wall
|
68
|
+
#
|
69
|
+
# event = FbGraph::Event.new(event_id)
|
70
|
+
# event.feed!(
|
71
|
+
# :access_token => ACCESS_TOKEN,
|
72
|
+
# :message => 'Updating via FbGraph'
|
73
|
+
# )
|
74
|
+
#
|
75
|
+
# === Group Wall
|
76
|
+
#
|
77
|
+
# group = FbGraph::Group.new(group_id)
|
78
|
+
# group.feed!(
|
79
|
+
# :access_token => ACCESS_TOKEN,
|
80
|
+
# :message => 'Updating via FbGraph'
|
81
|
+
# )
|
13
82
|
def feed!(options = {})
|
14
83
|
post = post(options.merge(:connection => 'feed'))
|
15
84
|
Post.new(post.delete(:id), options.merge(post).merge(
|
data/lib/fb_graph/node.rb
CHANGED
@@ -103,7 +103,7 @@ module FbGraph
|
|
103
103
|
_response_ = JSON.parse(response.body).with_indifferent_access
|
104
104
|
if _response_[:error]
|
105
105
|
case _response_[:error][:type]
|
106
|
-
when 'OAuthAccessTokenException', 'QueryParseException'
|
106
|
+
when 'OAuthAccessTokenException', 'QueryParseException', 'OAuthInvalidRequestException'
|
107
107
|
raise FbGraph::Unauthorized.new(_response_[:error][:message])
|
108
108
|
else
|
109
109
|
raise FbGraph::BadRequest.new("#{_response_[:error][:type]} :: #{_response_[:error][:message]}")
|
data/lib/fb_graph/user.rb
CHANGED
@@ -21,18 +21,15 @@ module FbGraph
|
|
21
21
|
include Connections::Links
|
22
22
|
include Connections::Notes
|
23
23
|
include Connections::Events
|
24
|
+
# --
|
24
25
|
# TODO
|
25
26
|
# include Connections::Inbox
|
26
27
|
# include Connections::Outbox
|
27
28
|
# include Connections::Updates
|
28
|
-
|
29
|
+
include Connections::Accounts
|
30
|
+
# ++
|
29
31
|
extend Searchable
|
30
32
|
|
31
|
-
# TODO:
|
32
|
-
# include Connections::Inbox
|
33
|
-
# include Connections::Outbox
|
34
|
-
# include Connections::Updates
|
35
|
-
|
36
33
|
attr_accessor :first_name, :last_name, :name, :link, :about, :birthday, :work, :education, :email, :website, :hometown, :location, :bio, :quotes, :gender, :interested_in, :meeting_for, :relationship_status, :religion, :political, :verified, :significant_other, :timezone, :updated_time
|
37
34
|
|
38
35
|
def initialize(identifier, options = {})
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"data": [
|
3
|
+
{
|
4
|
+
"name": "OAuth.jp",
|
5
|
+
"category": "Technology",
|
6
|
+
"id": "140478125968442",
|
7
|
+
"access_token": "access_token_for_oauth_jp"
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"name": "FbGraph",
|
11
|
+
"category": "Technology",
|
12
|
+
"id": "117513961602338",
|
13
|
+
"access_token": "access_token_for_fb_graph"
|
14
|
+
}
|
15
|
+
]
|
16
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Accounts, '#accounts' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/accounts', 'users/accounts/matake_public')
|
7
|
+
fake_json(:get, 'matake/accounts?access_token=access_token', 'users/accounts/matake_private')
|
8
|
+
fake_json(:get, 'matake/accounts?access_token=access_token_with_manage_pages_permission', 'users/accounts/matake_private_with_manage_pages_permission')
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'when no access_token given' do
|
12
|
+
it 'should raise FbGraph::Unauthorized' do
|
13
|
+
lambda do
|
14
|
+
FbGraph::User.new('matake').accounts
|
15
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when access_token is given' do
|
20
|
+
it 'should return accounts as FbGraph::Page' do
|
21
|
+
accounts = FbGraph::User.new('matake', :access_token => 'access_token').accounts
|
22
|
+
accounts.class.should == FbGraph::Connection
|
23
|
+
accounts.first.should == FbGraph::Page.new(
|
24
|
+
'140478125968442',
|
25
|
+
:access_token => 'access_token',
|
26
|
+
:name => 'OAuth.jp',
|
27
|
+
:category => 'Technology'
|
28
|
+
)
|
29
|
+
accounts.each do |account|
|
30
|
+
account.should be_instance_of(FbGraph::Page)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when manage_pages permission given' do
|
35
|
+
it 'should has special access_token behalf of the page' do
|
36
|
+
accounts = FbGraph::User.new('matake', :access_token => 'access_token_with_manage_pages_permission').accounts
|
37
|
+
accounts.first.should == FbGraph::Page.new(
|
38
|
+
'140478125968442',
|
39
|
+
:access_token => 'access_token_for_oauth_jp',
|
40
|
+
:name => 'OAuth.jp',
|
41
|
+
:category => 'Technology'
|
42
|
+
)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fb_graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
|
-
-
|
10
|
-
version: 0.7.
|
9
|
+
- 3
|
10
|
+
version: 0.7.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- nov matake
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-07 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- lib/fb_graph/comparison.rb
|
150
150
|
- lib/fb_graph/connection.rb
|
151
151
|
- lib/fb_graph/connections.rb
|
152
|
+
- lib/fb_graph/connections/accounts.rb
|
152
153
|
- lib/fb_graph/connections/activities.rb
|
153
154
|
- lib/fb_graph/connections/albums.rb
|
154
155
|
- lib/fb_graph/connections/attending.rb
|
@@ -221,6 +222,9 @@ files:
|
|
221
222
|
- spec/fake_json/posts/likes/post_without_access_token.json
|
222
223
|
- spec/fake_json/posts/platform_private.json
|
223
224
|
- spec/fake_json/posts/platform_public.json
|
225
|
+
- spec/fake_json/users/accounts/matake_private.json
|
226
|
+
- spec/fake_json/users/accounts/matake_private_with_manage_pages_permission.json
|
227
|
+
- spec/fake_json/users/accounts/matake_public.json
|
224
228
|
- spec/fake_json/users/activities/arjun_private.json
|
225
229
|
- spec/fake_json/users/activities/arjun_public.json
|
226
230
|
- spec/fake_json/users/albums/matake_private.json
|
@@ -274,6 +278,7 @@ files:
|
|
274
278
|
- spec/fb_graph/collection_spec.rb
|
275
279
|
- spec/fb_graph/comment_spec.rb
|
276
280
|
- spec/fb_graph/connection_spec.rb
|
281
|
+
- spec/fb_graph/connections/accounts_spec.rb
|
277
282
|
- spec/fb_graph/connections/activities_spec.rb
|
278
283
|
- spec/fb_graph/connections/albums_spec.rb
|
279
284
|
- spec/fb_graph/connections/attending_spec.rb
|
@@ -362,6 +367,7 @@ test_files:
|
|
362
367
|
- spec/fb_graph/collection_spec.rb
|
363
368
|
- spec/fb_graph/comment_spec.rb
|
364
369
|
- spec/fb_graph/connection_spec.rb
|
370
|
+
- spec/fb_graph/connections/accounts_spec.rb
|
365
371
|
- spec/fb_graph/connections/activities_spec.rb
|
366
372
|
- spec/fb_graph/connections/albums_spec.rb
|
367
373
|
- spec/fb_graph/connections/attending_spec.rb
|