0

Railsアプリのユーザー表示ページにFacebookの友達追加ダイアログを追加しています。

ページに次のコードを追加しました

<%= 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