public
Last active

FbGraph Test User

  • Download Gist
fb_graph_test_user.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
app = FbGraph::Application.new(config[:client_id], :secret => config[:client_secret])
app.test_users.collect(&:destroy)
 
user1 = app.test_user!(:installed => true, :permissions => :read_stream)
user2 = app.test_user!(:installed => true, :permissions => :read_stream)
 
p user1, user2
p user1.friend!(user2)
 
p user1.accounts
p user1.activities
p user1.accounts
p user1.albums
p user1.books
p user1.checkins
p user1.events
p user1.feed
p user1.friend_lists
p user1.friends
p user1.groups
p user1.home
p user1.interests
p user1.likes
p user1.links
p user1.movies
p user1.music
p user1.notes
p user1.photos
p user1.picture
p user1.posts
p user1.statuses
p user1.tagged
p user1.television
p user1.videos

Perhaps its just me, but what threw me back initially was a confusion about "client_id" and "app_id" (despite my age I'm not the seasoned facebook-developer ;-) ). I had to use the value tagged as "app_id" in my facebook.yml here and not the one tagged "client_id".

Thanks loads!
Michael

Addendum: Now everything seems to work fine, at least in console

I get FBGraph::Exception when I try to destroy the test users... any thoughts?

Rescue the error, then check error.message.
Probably you can see the error message Graph API returned.

I get "(#100) Invalid value specified for param: id"

i have two old user

example:
#<FbGraph::TestUser:0x000001076e5bb0 @identifier="499102699", @endpoint="https://graph.facebook.com/499102699", @access_token=nil,..

don't know why i can't destroy 'old' users

but when I create new ones with app.test_user! it is possible to destroy them

example new user:
#<FbGraph::TestUser:0x00000106055120 @identifier="100002494629341", @endpoint="https://graph.facebook.com/100002494629341", @access_token="213439622021302|7d200a351e228508e997bd80.0-100002494629341|-8j6vBIzmb-naxjqzvQxeko-LBo", ..

so i did the following to make sure to destroy all 'new' users

app.test_users.each do |u| 
  u.destroy if u.identifier.length > 10
end

It seems IpsBetty has ran into an FB bug:
http://bugs.developers.facebook.net/show_bug.cgi?id=17838

You can't delete these users now. Maybe a fix will help on FB side.

@IpsBetty, I was having the same issue. I got around it by getting the access_token from the app and applying it to the test_user.

access_token = app.get_access_token
app.test_users.each do |u|
  u.access_token = access_token
  u.destroy if u.identifier.length > 10
end

but you didn't destroy an old user after all?
because the " if u.identifier.length > 10 " represents a new user

Well, I'm not sure... I didn't have the identifier length in my solution. I just put that in there for your reference. I could not delete any user accounts today. I got around it by passing the app's access token to the test user before deleting it.

+1, working on console.... if anyone find useful..
app = FbGraph::Application.new("app_id from facebook.yml", :secret => "secrect_key from facebook.yml")

thaks

Been trying to write some feature tests in cucumber but when i try to follow the sign in i get an error
uninitialized constant OauthController
Would anyone be kind enough to help me out?

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.