我想知道当前用户是否是使用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
谢谢!!!
这比我想象的要容易得多:在用户模型中简单使用考拉方法:
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 %>