Хорошо, я никогда не использовал Ruby в своей жизни, но что-то в этом вызове Facebooker мне кажется неправильным. Вот как выглядит fb_user_action по вашей ссылке:
def fb_user_action(action, user_message = "", prompt = "", callback = nil)
update_page do |page|
page.call "FB.Connect.showFeedDialog",action.template_id,action.data,action.target_ids,action.body_general,nil,page.literal("FB.RequireConnect.promptConnect"),callback,prompt,user_message
end
end
Итак, исходя из того, что я посмотрел на страницу page.call, мне кажется, что он сгенерирует javascript следующим образом:
FB.Connect.showFeedDialog(template_id,data,target_ids,body_general,nil,promptConnect,callback,prompt,user_message);
Однако подпись showFeedDialog:
FB.Connect.showFeedDialog(template_id,data,body_general,target_ids,callback,prompt,user_message)
Порядок параметров, которые генерирует функция Facebooker fb_user_action для Javascript, кажется мне совершенно неправильным. Параметр обратного вызова выглядит так, как будто он будет заменен на ноль, поэтому ничего не будет вызвано.
Что если вместо вызова fb_user_action вы просто использовали page.call сами, но с параметрами в правильном порядке?
Опять же, я не могу понять синтаксис page.call и / или Ruby здесь. Но я бы дважды проверил эту функцию Facebooker, так как API FB все время меняется.