0

我正在将Facebook 的添加朋友对话框添加到 Rails 应用程序中的用户显示页面。

我已将以下代码添加到页面

<%= link_to "Friend on Facebook", "http://www.facebook.com/dialog/friends/?id=#{@user.facebook_uid}&app_id=#{@my_app_id}&redirect_uri=#{user_url(@user)}" %>

到目前为止一切顺利,我收到了来自 Facebook 的以下回调响应:

If the user clicks to "Add Friend" (not sure where the additional # characters are coming from":
http://myapp.com/user/1?action=1#_=_

If the user clicks "Cancel":
http://myapp.com/user/1?action=0#_=_

我想检测这些响应,并且在用户控制器中有以下代码

def show
  ....
  if params[:action] == 1
    flash[:success] = "Friend added!"
  elsif params[:action] == 0
    flash[:error] = "Not added"
  else
   flash[:notice] = "no message"
  end
end

Facebook 回调总是通过条件句并生成“无消息”闪存。我尝试了各种排列,包括转换为字符串、整数和添加#_=_字符。

<%= params %>如果我在视图中渲染,我会看到

{"action"=>"show", "controller"=>"users", "id"=>"5"}

但地址栏中的 url 有 Facebook 参数

http://myapp.com/user/1?action=1#_=_

虽然我想找到解决办法,但我也想了解正在发生的事情。我会假设 action=1 将被添加到 params 响应中。

4

0 回答 0