FacebookのグラフAPIをいじっているときに、何か厄介なことに遭遇します。FacebookSDKのルビーラッパーであるfb_graphを使用しています。私が遭遇するこの問題がFacebookSDKの制限であるかどうか、またはfb_graphの所有者に連絡する必要があるかどうかはわかりません。
したがって、fb_graphを使用して、これがユーザーに接続する方法です。
jane = FbGraph::User.fetch('janeid', :access_token => "janeaccesstoken")
jane.friendsは、ジェーンのすべての友達を一覧表示します。ただし、ジェーンの友達の誕生日やメールを取得しようとすると、nilが返されます。言い換えると、
jane.friends[0].birthday => nil
しかし、私はこの方法でfriends[0]の誕生日にアクセスできます。
bill = FbGraph::User.fetch(jane.friends[0].id, :access_token => "janeaccesstoken")
言い換えれば、すべてのジェーンの友達の生年月日のリストが必要な場合、これを行うことはできません。
@jane.friends.each do |friend|
puts friend.birthday
end
代わりに、このようなものでなければなりません
@jane.friends.each do |friend|
friendname = FbGraph::User.fetch(friend.id, :access_token => "janeaccesstoken")
puts friendname.birthday
end
それほど悪くはないと思いますが、実際には一部の情報だけがゼロであるため、なぜこれが当てはまるのか不思議に思います。たとえば、名前はそうではありません。
@jane.friends.each do |friend|
puts friend.name # => works!
end