I encounter something annoying while playing around with the facebook graph API. I'm using fb_graph which is a ruby wrapper for the facebook sdk. I'm not sure if this issue I encounter is a limitation of the facebook sdk or I should contact the owner of fb_graph.
So, using fb_graph, this is how I would connect to a user:
jane = FbGraph::User.fetch('janeid', :access_token => "janeaccesstoken")
jane.friends will list all of jane's friends. However, if I try to get jane's friends birthday or email, it returns nil. In other words,
jane.friends[0].birthday => nil
But, I can access friends[0] birthday this way:
bill = FbGraph::User.fetch(jane.friends[0].id, :access_token => "janeaccesstoken")
In other words, if I wanted a list of all jane's friends' birthdates, I cannot do this:
@jane.friends.each do |friend|
puts friend.birthday
end
instead, it will have to be something like this
@jane.friends.each do |friend|
friendname = FbGraph::User.fetch(friend.id, :access_token => "janeaccesstoken")
puts friendname.birthday
end
I guess it's not too bad but it does make me wonder why this is the case, because actually only some info is nil. Name, for example, is not.
@jane.friends.each do |friend|
puts friend.name # => works!
end