/ / Як отримати фотографію користувача Facebook, використовуючи перлину Koala? - ruby-on-rails, facebook-graph-api

Як отримати фотографію користувача Facebook, використовуючи перлину Koala? - ruby-on-rails, facebook-graph-api

Я намагаюся отримати зображення друзів користувача Facebook їхні ідентифікатори facebook, але використовуючи наступний код повертає nil замість URL-адреси зображення ...

Код, який я використовую, такий:

picture_url = @user.get_picture("1000000111")

де @user - це об'єкт Graph API, створений за допомогою Facebook аутентифікація ...

Що відсутнє в цьому коді ?? Заздалегідь спасибі.

Відповіді:

2 для відповіді № 1

Я не знаю про Коала, але якщо ви запитуєте ідентифікатор користувача (у вигляді graph.facebook.com/odedharth/picture ) Ви можете отримати його.


13 за відповідь № 2

Щоб отримати всі зображення facebook друзів у ruby ​​на рейках. Ви можете скористатися перлиною Коала 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

Але цей метод займе багато часу, тому що вам доведеться відправити запит на кожного друга.

Щоб уникнути цього, можна скористатися API REST, який підтримує коала,

@rest = Koala::Facebook::API.new(oauth_access_token)
@rest.fql_query(my_fql_query)
@rest.fql_multiquery(fql_query_hash) # convenience method

Щоб написати запит Fql, ви можете використовувати структуру таблиці facebook, яку ви можете знайти за адресою http://developers.facebook.com/docs/reference/fql/

щоб отримати Facebook uid, ім'я та pic, які ви можете використовувати цей ..

@rest.fql_query("select uid, name, pic_square from user where uid in (select uid2 from friend where uid1 = me())")

12 для відповіді № 3

Ви також можете отримати всіх своїх друзів за допомогою своїх фотографій get_connection() як зазначено нижче

friends = @graph.get_connections("me", "friends?fields=id,name,picture.type(large)")

5 за відповідь № 4

Я отримав зображення, працюючи безпосередньо за допомогою url, вказаного Cody в тезі зображення, як показано нижче



img  src="/images/http://graph.facebook.com/10000010000001/picture" />

img  src="/images/http://graph.facebook.com/user_profile_id/picture" />



3 для відповіді № 5

Використовуйте маркер доступу, який ви отримали від oauth

graph = Koala::Facebook::GraphAPI.new(access_token)
profile_path = graph.get_picture(uid)

Щоб отримати шлях, потім відобразити його

<%= image_tag profile_path %>

Це працює для мене, і це для вас ..


1 для відповіді № 6
  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/