我想知道当前用户是否是使用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 %>
将返回:[{&#34; name&#34; =&gt;&#34; Elizabeth&#34;,&#34; id&#34; =&gt;&#34; 100008217009369&#34;}] < / p>
<%= @user.uid %>
将返回:100008217009369
感谢!!!
答案 0 :(得分:0)
比我想象的容易得多: 在用户模型中简单使用了Koala方法:
def facebook_friend(user)
facebook.get_connection("me", "friends/#{user.uid}")
end
def my_friends_list
facebook.get_connection("me", "friends")
end
然后在Profile View中,添加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 %>