Определение, являются ли пользователи друзьями в facebook (парсинг)

Я хотел бы узнать, дружит ли текущий пользователь с пользователем корневого узла, используя Koala, и если да, то напечатайте заявление: вы друзья. Моя проблема - это синтаксический анализ данных, возвращаемых из facebook.

user.rb

def facebook
  @facebook ||= Koala::Facebook::API.new(oauth_token)
  block_given? ? yield(@facebook) : @facebook
rescue Koala::Facebook::APIError => e
  logger.info e.to_s
  nil # or consider a custom null object
end

def facebook_friend
  facebook.get_connection("me", "friends/#user.user_id")
end

Profile.html.erb

<% if current_user.facebook_friend.include?(@user.uid)? %>
  <p> you are friends</p>               
<% else %>
  <p> you are not friends</p>   
<% end %>

Выход:

<%= current_user.facebook_friend %>

вернет: [{"name" => "Elizabeth", "id" => "100008217009369"}]

<%= @user.uid %>

вернет: 100008217009369

Спасибо!!!


person robinyapockets    schedule 24.04.2014    source источник


Ответы (1)


Это было намного проще, чем я думал: в пользовательской модели simple использовал метод Koala:

def facebook_friend(user)
  facebook.get_connection("me", "friends/#{user.uid}")
end

def my_friends_list
  facebook.get_connection("me", "friends")
end

Затем в представлении профиля, добавив current_user и @user в качестве аргументов:

<% if @user.uid.present? %>
  <% if signed_in? && current_user == @user %>
    <p><%= current_user.my_friends_list.count %> friends</p>
  <% elsif current_user.facebook_friend(@user).empty? %>
    <p><%= current_user.mutual_friends.count %> friends in common</p>
  <% else %>
    <p>You are Facebook friends</p>
  <% end %>
<% else %>
  <p>Not connected</p>
<% end %>   
person robinyapockets    schedule 28.04.2014