fb_graph 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README.rdoc +74 -3
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/fb_graph.gemspec +4 -4
- data/lib/fb_graph/album.rb +99 -6
- data/lib/fb_graph/application.rb +17 -0
- data/lib/fb_graph/auth/cookie.rb +2 -0
- data/lib/fb_graph/auth.rb +15 -0
- data/lib/fb_graph/checkin.rb +2 -2
- data/lib/fb_graph/connections/accounts.rb +45 -9
- data/lib/fb_graph/connections/albums.rb +75 -0
- data/lib/fb_graph/education.rb +1 -1
- data/lib/fb_graph/page.rb +1 -1
- data/lib/fb_graph/tag.rb +1 -1
- data/lib/fb_graph/venue.rb +1 -1
- data/lib/fb_graph/work.rb +1 -1
- data/spec/fake_json/users/albums/matake_private.json +2 -0
- data/spec/fb_graph/connections/albums_spec.rb +2 -0
- data/spec/fb_graph/page_spec.rb +5 -0
- metadata +6 -6
data/LICENSE
CHANGED
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/github/nov/fb_graph
|
11
|
+
* View RDoc on RDoc.info (http://rdoc.info/github/nov/fb_graph)
|
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)
|
@@ -24,12 +24,20 @@ Plus, you can play an Rails sample app here. http://fbgraphsample.heroku.com/
|
|
24
24
|
|
25
25
|
==== Basic Objects
|
26
26
|
|
27
|
+
user = FbGraph::User.me(ACCESS_TOKEN)
|
28
|
+
|
27
29
|
user = FbGraph::User.fetch('matake')
|
28
30
|
user.name # => 'Nov Matake'
|
29
31
|
user.picture # => 'https://graph.facebook.com/matake/picture'
|
30
32
|
|
31
|
-
#
|
32
|
-
|
33
|
+
# fb_graph doesn't access to Graph API until you call "fetch"
|
34
|
+
user = FbGraph::User.new('matake', :access_token => YOUR_ACCESS_TOKEN)
|
35
|
+
user.identifier # => "matake"
|
36
|
+
user.name # => nil
|
37
|
+
user.link # => nil
|
38
|
+
user.fetch
|
39
|
+
user.name # => "Nov Matake"
|
40
|
+
user.description # => "http://www.facebook.com/matake"
|
33
41
|
|
34
42
|
page = FbGraph::Page.fetch('smartfmteam')
|
35
43
|
page.name # => 'smart.fm'
|
@@ -222,6 +230,69 @@ You can also see http://github.com/nov/fb_graph_sample for more details Rails3 s
|
|
222
230
|
app = FbGraph::Application.new(YOUR_APP_ID, :secret => YOUR_APPLICATION_SECRET)
|
223
231
|
app.insights # => Array of FbGraph::Insight
|
224
232
|
|
233
|
+
== Documents
|
234
|
+
|
235
|
+
Currently fb_graph isn't so well documented.
|
236
|
+
|
237
|
+
I'm continuously updating RDoc now, but writing all documents <b>in English</b> is heavy task for me.
|
238
|
+
|
239
|
+
Please see RDoc.info (http://rdoc.info/github/nov/fb_graph), and if the document is missing or hard to understand, please contact me on github.
|
240
|
+
|
241
|
+
I'll add more documents or sample code.
|
242
|
+
|
243
|
+
=== Objects
|
244
|
+
|
245
|
+
* FbGraph::Album[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Album]
|
246
|
+
* FbGraph::Application[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Application]
|
247
|
+
* FbGraph::Checkin[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Checkin]
|
248
|
+
* FbGraph::Comment[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Comment]
|
249
|
+
* FbGraph::Event[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Event]
|
250
|
+
* FbGraph::Group[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Group]
|
251
|
+
* FbGraph::Insight[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Insight]
|
252
|
+
* FbGraph::Link[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Link]
|
253
|
+
* FbGraph::Note[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Note]
|
254
|
+
* FbGraph::Page[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Page]
|
255
|
+
* FbGraph::Photo[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Photo]
|
256
|
+
* FbGraph::Post[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Post]
|
257
|
+
* FbGraph::Status[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Status]
|
258
|
+
* FbGraph::Subscription[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Subscription]
|
259
|
+
* FbGraph::User[http://rdoc.info/github/nov/fb_graph/master/FbGraph/User]
|
260
|
+
* FbGraph::Video[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Video]
|
261
|
+
|
262
|
+
=== Connections
|
263
|
+
|
264
|
+
* FbGraph::Connections::Accounts[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Accounts]
|
265
|
+
* FbGraph::Connections::Activities[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Activities]
|
266
|
+
* FbGraph::Connections::Albums[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Albums]
|
267
|
+
* FbGraph::Connections::Attending[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Attending]
|
268
|
+
* FbGraph::Connections::Books[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Books]
|
269
|
+
* FbGraph::Connections::Checkins[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Checkins]
|
270
|
+
* FbGraph::Connections::Comments[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Comments]
|
271
|
+
* FbGraph::Connections::Declined[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Declined]
|
272
|
+
* FbGraph::Connections::Events[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Events]
|
273
|
+
* FbGraph::Connections::Feed[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Feed]
|
274
|
+
* FbGraph::Connections::Friends[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Friends]
|
275
|
+
* FbGraph::Connections::Groups[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Groups]
|
276
|
+
* FbGraph::Connections::Home[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Home]
|
277
|
+
* FbGraph::Connections::Insights[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Insights]
|
278
|
+
* FbGraph::Connections::Interests[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Interests]
|
279
|
+
* FbGraph::Connections::Invited[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Invited]
|
280
|
+
* FbGraph::Connections::Likes[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Likes]
|
281
|
+
* FbGraph::Connections::Links[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Links]
|
282
|
+
* FbGraph::Connections::Maybe[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Maybe]
|
283
|
+
* FbGraph::Connections::Members[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Members]
|
284
|
+
* FbGraph::Connections::Movies[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Movies]
|
285
|
+
* FbGraph::Connections::Music[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Music]
|
286
|
+
* FbGraph::Connections::Noreply[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Noreply]
|
287
|
+
* FbGraph::Connections::Notes[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Notes]
|
288
|
+
* FbGraph::Connections::Photos[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Photos]
|
289
|
+
* FbGraph::Connections::Picture[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Picture]
|
290
|
+
* FbGraph::Connections::Statuses[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Statuses]
|
291
|
+
* FbGraph::Connections::Subscriptions[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Subscriptions]
|
292
|
+
* FbGraph::Connections::Tagged[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Tagged]
|
293
|
+
* FbGraph::Connections::Television[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Television]
|
294
|
+
* FbGraph::Connections::Videos[http://rdoc.info/github/nov/fb_graph/master/FbGraph/Connections/Videos]
|
295
|
+
|
225
296
|
== Note on Patches/Pull Requests
|
226
297
|
|
227
298
|
* Fork the project.
|
data/Rakefile
CHANGED
@@ -5,8 +5,8 @@ begin
|
|
5
5
|
require 'jeweler'
|
6
6
|
Jeweler::Tasks.new do |gem|
|
7
7
|
gem.name = 'fb_graph'
|
8
|
-
gem.summary = %Q{A
|
9
|
-
gem.description = %Q{A
|
8
|
+
gem.summary = %Q{A full-stack Facebook Graph API wrapper in Ruby.}
|
9
|
+
gem.description = %Q{A full-stack Facebook Graph API wrapper in Ruby.}
|
10
10
|
gem.email = 'nov@matake.jp'
|
11
11
|
gem.homepage = 'http://github.com/nov/fb_graph'
|
12
12
|
gem.authors = ['nov matake']
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.2
|
data/fb_graph.gemspec
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fb_graph}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.2"
|
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-
|
13
|
-
s.description = %q{A
|
12
|
+
s.date = %q{2010-09-13}
|
13
|
+
s.description = %q{A full-stack Facebook Graph API wrapper in Ruby.}
|
14
14
|
s.email = %q{nov@matake.jp}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
@@ -232,7 +232,7 @@ Gem::Specification.new do |s|
|
|
232
232
|
s.rdoc_options = ["--charset=UTF-8"]
|
233
233
|
s.require_paths = ["lib"]
|
234
234
|
s.rubygems_version = %q{1.3.7}
|
235
|
-
s.summary = %q{A
|
235
|
+
s.summary = %q{A full-stack Facebook Graph API wrapper in Ruby.}
|
236
236
|
s.test_files = [
|
237
237
|
"spec/fb_graph/album_spec.rb",
|
238
238
|
"spec/fb_graph/application_spec.rb",
|
data/lib/fb_graph/album.rb
CHANGED
@@ -1,4 +1,97 @@
|
|
1
1
|
module FbGraph
|
2
|
+
# = Authentication
|
3
|
+
#
|
4
|
+
# * Access token is required to fetch album info.
|
5
|
+
#
|
6
|
+
# = Attributes
|
7
|
+
#
|
8
|
+
# +from+:: FbGraph::User or FbGraph::Page
|
9
|
+
# +name+:: String
|
10
|
+
# +description+:: String
|
11
|
+
# +location+:: String <em>ex.) "NYC"</em>
|
12
|
+
# +link+:: String
|
13
|
+
# +privacy+:: String <em>ex.) "everyone"</em>
|
14
|
+
# +count+:: Integer
|
15
|
+
# +created_time+:: Time (UTC)
|
16
|
+
# +updated_time+:: Time (UTC)
|
17
|
+
#
|
18
|
+
# = Connections
|
19
|
+
#
|
20
|
+
# +photos+:: Array of FbGraph::Photo
|
21
|
+
# +comments+:: Array of FbGraph::Comment
|
22
|
+
# +likes+:: Array of FbGraph::Page
|
23
|
+
#
|
24
|
+
# = Examples
|
25
|
+
#
|
26
|
+
# == Fetch album info
|
27
|
+
#
|
28
|
+
# album = FbGraph::Album.new(ALBUM_ID)
|
29
|
+
# album.fetch(:access_token => ACCESS_TOKEN)
|
30
|
+
#
|
31
|
+
# or
|
32
|
+
#
|
33
|
+
# FbGraph::album.fetch(ALBUM_ID, :access_token => ACCESS_TOKEN)
|
34
|
+
#
|
35
|
+
# == Fetch connection
|
36
|
+
#
|
37
|
+
# photos = album.photos
|
38
|
+
# likes = album.likes
|
39
|
+
# comments = album.comments
|
40
|
+
#
|
41
|
+
# === Pagination
|
42
|
+
#
|
43
|
+
# photos = album.photos
|
44
|
+
# photos_next = photos.next
|
45
|
+
# photos_previous = photos.previous
|
46
|
+
# photos = album.photos(:since => '2010-09-01', :until => '2010-10-01')
|
47
|
+
# photos = album.photos(:offset => 20, :limit => 20)
|
48
|
+
#
|
49
|
+
# == Creat new album
|
50
|
+
#
|
51
|
+
# See RDoc for FbGraph::Connections::Albums
|
52
|
+
#
|
53
|
+
# == Upload a photo
|
54
|
+
#
|
55
|
+
# album.photo!(
|
56
|
+
# :image => File.new(File.join(File.dirname(__FILE__), 'nov.gif')),
|
57
|
+
# :name => "name",
|
58
|
+
# :message => 'message'
|
59
|
+
# )
|
60
|
+
#
|
61
|
+
# == Post a comment
|
62
|
+
#
|
63
|
+
# album.comment!(
|
64
|
+
# :access_token => ACCESS_TOKEN,
|
65
|
+
# :message => 'Hey, I\'m testing you!'
|
66
|
+
# )
|
67
|
+
#
|
68
|
+
# == Delete a comment
|
69
|
+
#
|
70
|
+
# comment = album.comments.last
|
71
|
+
# comment.destroy
|
72
|
+
#
|
73
|
+
# == Like and unlike
|
74
|
+
#
|
75
|
+
# album.like!
|
76
|
+
# album.unlike!
|
77
|
+
#
|
78
|
+
# = Notes
|
79
|
+
#
|
80
|
+
# == Attribute +from+
|
81
|
+
#
|
82
|
+
# Both facebook user and page can have albums, so +from+ can be either FbGraph::User or FbGraph::Page.
|
83
|
+
# * When you called +ablums+ connection of FbGraph::User, all +from+ should be FbGraph::User.
|
84
|
+
# * When you called +ablums+ connection of FbGraph::Page, all +from+ should be FbGraph::Page.
|
85
|
+
# * When you fetched an album by objedt id, +from+ can be either FbGraph::User or FbGraph::Page.
|
86
|
+
#
|
87
|
+
# == Cached +comments+
|
88
|
+
#
|
89
|
+
# When album object fetched, several comments are included in the response.
|
90
|
+
# So first time you called +album.comments+, those cached comments will be returned.
|
91
|
+
# If you put any option parameter like +album.comments(:access_token => ACCESS_TOKEN)+,
|
92
|
+
# fb_graph ignores those cached comments and fetch comments via Graph API.
|
93
|
+
#
|
94
|
+
# <em>If cached "album.comments" are blank, probably the album has no comments yet.</em>
|
2
95
|
class Album < Node
|
3
96
|
include Connections::Photos
|
4
97
|
include Connections::Comments
|
@@ -8,8 +101,8 @@ module FbGraph
|
|
8
101
|
|
9
102
|
def initialize(identifier, attributes = {})
|
10
103
|
super
|
11
|
-
if (from = attributes[:from])
|
12
|
-
|
104
|
+
@from = if (from = attributes[:from])
|
105
|
+
if from[:category]
|
13
106
|
FbGraph::Page.new(from.delete(:id), from)
|
14
107
|
else
|
15
108
|
FbGraph::User.new(from.delete(:id), from)
|
@@ -26,11 +119,11 @@ module FbGraph
|
|
26
119
|
@link = attributes[:link]
|
27
120
|
@privacy = attributes[:privacy]
|
28
121
|
@count = attributes[:count]
|
29
|
-
if attributes[:created_time]
|
30
|
-
|
122
|
+
@created_time = if attributes[:created_time]
|
123
|
+
Time.parse(attributes[:created_time]).utc
|
31
124
|
end
|
32
|
-
if attributes[:updated_time]
|
33
|
-
|
125
|
+
@updated_time = if attributes[:updated_time]
|
126
|
+
Time.parse(attributes[:updated_time]).utc
|
34
127
|
end
|
35
128
|
|
36
129
|
# cached connection
|
data/lib/fb_graph/application.rb
CHANGED
@@ -25,6 +25,23 @@ module FbGraph
|
|
25
25
|
@secret = attributes[:secret]
|
26
26
|
end
|
27
27
|
|
28
|
+
# == Get OAuth access token
|
29
|
+
#
|
30
|
+
# Obtain an OAuth access token associated with your application via the OAuth Client Credentials Flow.
|
31
|
+
#
|
32
|
+
# ref) http://developers.facebook.com/docs/api#analytics
|
33
|
+
#
|
34
|
+
# app = FbGraph::Application.new(APP_ID)
|
35
|
+
# app.get_access_token
|
36
|
+
# # => access token as String
|
37
|
+
# app.access_token # once get_access_token is called, access token is cached.
|
38
|
+
# # => access token as String
|
39
|
+
#
|
40
|
+
# This method is automatically called when access token needed and application secret has already given.
|
41
|
+
#
|
42
|
+
# app = FbGraph::Application.new(APP_ID, :secret => APP_SECRET)
|
43
|
+
# app.subscriptions # get_access_token is called automatically
|
44
|
+
# # => Array of FbGraph::Subscription
|
28
45
|
def get_access_token(secret = nil)
|
29
46
|
self.secret ||= secret
|
30
47
|
auth = FbGraph::Auth.new(self.identifier, self.secret)
|
data/lib/fb_graph/auth/cookie.rb
CHANGED
data/lib/fb_graph/auth.rb
CHANGED
@@ -1,4 +1,19 @@
|
|
1
1
|
module FbGraph
|
2
|
+
# = Parse & verify facebook auth cookie
|
3
|
+
#
|
4
|
+
# Used with Facebook JavaScript SDK
|
5
|
+
#
|
6
|
+
# app = FbGraph::Auth.new(APP_ID, APP_SECRET)
|
7
|
+
# app.from_cookie(cookie_hash)
|
8
|
+
# auth.access_token
|
9
|
+
# # => OAuth2::AccessToken (not String!)
|
10
|
+
# auth.user # only initialized
|
11
|
+
# auth.user.fetch # fetch whole profile
|
12
|
+
#
|
13
|
+
# This method is called automatically if cookie is given when initializing
|
14
|
+
#
|
15
|
+
# auth = FbGraph::Auth.new(APP_ID, APP_SECRET, :cookie => {..})
|
16
|
+
# auth.access_token # already parsed
|
2
17
|
class Auth
|
3
18
|
class VerificationFailed < FbGraph::Exception; end
|
4
19
|
|
data/lib/fb_graph/checkin.rb
CHANGED
@@ -31,10 +31,10 @@ module FbGraph
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
#
|
34
|
+
# == Search for recent check-ins for an authorized user and his or her friends:
|
35
35
|
#
|
36
36
|
# FbGraph::Checkin.search(:access_token => ACCESS_TOKEN)
|
37
|
-
# => Array of FbGraph::Checkin
|
37
|
+
# # => Array of FbGraph::Checkin
|
38
38
|
def self.search(options = {})
|
39
39
|
# NOTE:
|
40
40
|
# checkin search doesn't support "q=***" parameter
|
@@ -1,15 +1,51 @@
|
|
1
1
|
module FbGraph
|
2
2
|
module Connections
|
3
|
+
# = What's "accounts"?
|
4
|
+
#
|
5
|
+
# Pages owned by the current user.
|
6
|
+
#
|
7
|
+
# ref) http://developers.facebook.com/docs/api#impersonation
|
8
|
+
#
|
9
|
+
# = Authentication
|
10
|
+
#
|
11
|
+
# * Access token is required.
|
12
|
+
# * "manage_pages" permission is optional.
|
13
|
+
#
|
14
|
+
# If the "manage_pages" permission has been granted,
|
15
|
+
# this connection also yields access_tokens that can be used to query the Graph API on behalf of the page.
|
16
|
+
#
|
17
|
+
# ref) http://developers.facebook.com/docs/reference/api/user
|
18
|
+
#
|
19
|
+
# = Connected with
|
20
|
+
#
|
21
|
+
# * FbGraph::User
|
22
|
+
#
|
23
|
+
# == Fetch
|
24
|
+
#
|
25
|
+
# pages = FbGraph::User.me(ACCESS_TOKEN).accounts
|
26
|
+
# # => array of FbGraph::Page
|
27
|
+
# pages.first.access_token
|
28
|
+
# # => String if "manage_pages" permission has been granted, nil if not.
|
29
|
+
#
|
30
|
+
# = Notes
|
31
|
+
#
|
32
|
+
# == Access token of the page
|
33
|
+
#
|
34
|
+
# Using given access token, you can do those things as the page, not as yourself.
|
35
|
+
#
|
36
|
+
# * update the page's wall
|
37
|
+
# * create new page's album and upload photos into it
|
38
|
+
# * create and manage an event
|
39
|
+
# * etc.
|
40
|
+
#
|
41
|
+
# See RDoc for FbGraph::Page for more details.
|
42
|
+
#
|
43
|
+
# page = FbGraph::User.me(ACCESS_TOKEN).accounts.first
|
44
|
+
# page.access_token
|
45
|
+
# # => given because "manage_pages" permission has been granted.
|
46
|
+
# page.feed!(:message => 'Updating via FbGraph')
|
47
|
+
# # => update the page's wall, not the user's wall
|
3
48
|
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
49
|
def accounts(options = {})
|
14
50
|
accounts = self.connection(:accounts, options)
|
15
51
|
accounts.map! do |account|
|
@@ -1,5 +1,80 @@
|
|
1
1
|
module FbGraph
|
2
2
|
module Connections
|
3
|
+
# = Authentication
|
4
|
+
#
|
5
|
+
# * Access token is required to fetch/create albums.
|
6
|
+
# * "publish_stream" permissin is required to create new album.
|
7
|
+
#
|
8
|
+
# = Connected with
|
9
|
+
#
|
10
|
+
# * FbGraph::Application
|
11
|
+
# * FbGraph::USer
|
12
|
+
# * FbGraph::Page
|
13
|
+
#
|
14
|
+
# = Example
|
15
|
+
#
|
16
|
+
# == Fetch albums
|
17
|
+
#
|
18
|
+
# me = FbGraph::User.me(ACCESS_TOKEN)
|
19
|
+
# me.albums
|
20
|
+
# # => Array of FbGraph::Album
|
21
|
+
#
|
22
|
+
# page = FbGraph::Page.new('fb_graph')
|
23
|
+
# page.albums
|
24
|
+
# # => Array of FbGraph::Album
|
25
|
+
#
|
26
|
+
# == Create an album
|
27
|
+
#
|
28
|
+
# me = FbGraph::User.me(ACCESS_TOKEN)
|
29
|
+
# album = me.album!(
|
30
|
+
# :name => 'FbGraph test',
|
31
|
+
# :message => 'hello world!',
|
32
|
+
# :description => 'hello world!'
|
33
|
+
# )
|
34
|
+
#
|
35
|
+
# page = FbGraph::Page.new('fb_graph', :access_token => ACCESS_TOKEN)
|
36
|
+
# album = page.album!(
|
37
|
+
# :name => 'FbGraph test',
|
38
|
+
# :message => 'hello world!',
|
39
|
+
# :description => 'hello world!'
|
40
|
+
# )
|
41
|
+
#
|
42
|
+
# = Notes
|
43
|
+
#
|
44
|
+
# == Attributes after created
|
45
|
+
#
|
46
|
+
# Only attributes you specified are saved in the created album object.
|
47
|
+
# If you want to access any other attributes, you need to fetch the album info via Graph API.
|
48
|
+
#
|
49
|
+
# me = FbGraph::User.me(ACCESS_TOKEN)
|
50
|
+
# album = me.album!(
|
51
|
+
# :name => 'FbGraph test',
|
52
|
+
# :message => 'hello world!',
|
53
|
+
# :description => 'hello world!'
|
54
|
+
# )
|
55
|
+
# album.name # => 'FbGraoh test'
|
56
|
+
# album.from # => nil
|
57
|
+
# album.created_time # => nil
|
58
|
+
# album.fetch
|
59
|
+
# album.from # => me
|
60
|
+
# album.created_time # => Sun Sep 12 01:18:36 +0900 2010
|
61
|
+
#
|
62
|
+
# == Bug of Graph API
|
63
|
+
#
|
64
|
+
# According facebook's document, the key for +description+ should be +description+ both when fetching and creating,
|
65
|
+
# but actually you need to use +message+ instead of +description+ only when creating.
|
66
|
+
# It probably facebook's bug, and it might be fixed suddenly.
|
67
|
+
# I highly recommend to send same value both as +description+ and +message+ when creating,
|
68
|
+
# then your code will work without any code change.
|
69
|
+
#
|
70
|
+
# ref) http://developers.facebook.com/docs/reference/api/album
|
71
|
+
#
|
72
|
+
# me = FbGraph::User.me(ACCESS_TOKEN)
|
73
|
+
# album = me.album!(
|
74
|
+
# :name => 'FbGraph test',
|
75
|
+
# :message => 'hello world!',
|
76
|
+
# :description => 'hello world!'
|
77
|
+
# )
|
3
78
|
module Albums
|
4
79
|
def albums(options = {})
|
5
80
|
albums = self.connection(:albums, options)
|
data/lib/fb_graph/education.rb
CHANGED
data/lib/fb_graph/page.rb
CHANGED
@@ -25,7 +25,7 @@ module FbGraph
|
|
25
25
|
@link = attributes[:link]
|
26
26
|
@category = attributes[:category]
|
27
27
|
if (founded = attributes[:founded])
|
28
|
-
@founded = Date.parse(founded)
|
28
|
+
@founded = Date.parse(founded) rescue Date.new(founded.to_i)
|
29
29
|
end
|
30
30
|
@company_overview = attributes[:company_overview]
|
31
31
|
@mission = attributes[:mission]
|
data/lib/fb_graph/tag.rb
CHANGED
data/lib/fb_graph/venue.rb
CHANGED
data/lib/fb_graph/work.rb
CHANGED
@@ -7,7 +7,9 @@
|
|
7
7
|
"id": "579612276"
|
8
8
|
},
|
9
9
|
"name": "\u30e2\u30d0\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9",
|
10
|
+
"description": "hello facebookers!",
|
10
11
|
"link": "http://www.facebook.com/album.php?aid=25463&id=579612276",
|
12
|
+
"location": "NYC",
|
11
13
|
"privacy": "everyone",
|
12
14
|
"count": 3,
|
13
15
|
"created_time": "2008-07-27T11:38:15+0000",
|
@@ -26,7 +26,9 @@ context 'when included by FbGraph::User' do
|
|
26
26
|
:name => 'Nov Matake'
|
27
27
|
},
|
28
28
|
:name => 'モバイルアップロード',
|
29
|
+
:description => 'hello facebookers!',
|
29
30
|
:link => 'http://www.facebook.com/album.php?aid=25463&id=579612276',
|
31
|
+
:location => 'NYC',
|
30
32
|
:count => 3,
|
31
33
|
:privacy => 'everyone',
|
32
34
|
:created_time => '2008-07-27T11:38:15+0000',
|
data/spec/fb_graph/page_spec.rb
CHANGED
@@ -34,6 +34,11 @@ describe FbGraph::Page, '.new' do
|
|
34
34
|
page.link.should == 'http://www.facebook.com/platform'
|
35
35
|
page.picture.should == 'https://graph.facebook.com/19292868552/picture' # use connection
|
36
36
|
end
|
37
|
+
|
38
|
+
it 'should allow invalid date as founded' do
|
39
|
+
page = FbGraph::Page.new(12345, :founded => "2004")
|
40
|
+
page.founded.should == Date.new(2004, 1, 1)
|
41
|
+
end
|
37
42
|
end
|
38
43
|
|
39
44
|
describe FbGraph::Page, '.fetch' do
|
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: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 2
|
10
|
+
version: 1.0.2
|
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-13 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
version: "0"
|
120
120
|
type: :development
|
121
121
|
version_requirements: *id007
|
122
|
-
description: A
|
122
|
+
description: A full-stack Facebook Graph API wrapper in Ruby.
|
123
123
|
email: nov@matake.jp
|
124
124
|
executables: []
|
125
125
|
|
@@ -372,7 +372,7 @@ rubyforge_project:
|
|
372
372
|
rubygems_version: 1.3.7
|
373
373
|
signing_key:
|
374
374
|
specification_version: 3
|
375
|
-
summary: A
|
375
|
+
summary: A full-stack Facebook Graph API wrapper in Ruby.
|
376
376
|
test_files:
|
377
377
|
- spec/fb_graph/album_spec.rb
|
378
378
|
- spec/fb_graph/application_spec.rb
|