我正在尝试使用Facebook用户的朋友的照片 他们的facebook ID,但使用以下代码返回nil 图片网址...
我使用的代码如下:
picture_url = @user.get_picture("1000000111")
其中@user是使用Facebook制作的Graph API对象 认证...
此代码中缺少什么?提前致谢。
答案 0 :(得分:14)
在ruby上获取所有facebook朋友的图像。你可以使用考拉宝石 https://github.com/arsduo/koala
它有很好的演绎
要获得facebbok朋友,您可以使用
@graph = Koala::Facebook::API.new(oauth_access_token)
friends = @graph.get_connections("me", "friends")
friends.each do |f|
f[:image]= @graph.get_picture(f["id"])
end
但是这种方法需要花费太多时间,因为你必须为每个朋友发送请求。
为避免这种情况,您可以使用koala支持的REST API,
@rest = Koala::Facebook::API.new(oauth_access_token)
@rest.fql_query(my_fql_query)
@rest.fql_multiquery(fql_query_hash) # convenience method
要编写Fql查询,您可以使用可在http://developers.facebook.com/docs/reference/fql/
找到的facebook表结构获得Facebook uid,名称和图片你可以使用这个..
@rest.fql_query("select uid, name, pic_square from user where uid in (select uid2 from friend where uid1 = me())")
答案 1 :(得分:12)
您还可以使用get_connection()
获取所有朋友的照片,如下所示
friends = @graph.get_connections("me", "friends?fields=id,name,picture.type(large)")
答案 2 :(得分:5)
我通过直接使用Cody在图片标签中指定的网址来获取图片,如下所示
img src="http://graph.facebook.com/10000010000001/picture" />
img src="http://graph.facebook.com/user_profile_id/picture" />
答案 3 :(得分:3)
使用您从oauth收到的访问令牌
graph = Koala::Facebook::GraphAPI.new(access_token)
profile_path = graph.get_picture(uid)
要获取路径,然后显示它
<%= image_tag profile_path %>
这对我有用,应该适合你......
答案 4 :(得分:3)
USER_PROFILE_OPTIONS = {
fields: %w(id first_name last_name hometown email
gender birthday picture.width(320))
}.freeze
@graph = Koala::Facebook::API.new(oauth_access_token)
@graph.get_object('me', USER_PROFILE_OPTIONS)
请参阅:https://developers.facebook.com/docs/graph-api/reference/user/picture/
答案 5 :(得分:2)
我不了解考拉,但如果你要求用户的标识符(以graph.facebook.com/odedharth/picture
的形式),你可以得到它。