Facebooker Перенаправление после fb_user_action

голоса
0

Я пытаюсь пользователя Facebooker публиковать рассказы в Facebook. Когда пользователь отправляет форму на моем сайте, я использую fb_user_action , чтобы показать диалоговое окно с просьбой , если история может быть опубликована. Когда это будет распущен, я хочу , чтобы перенаправить на другую страницу.

Facebook в документации showFeedDialog говорит о параметре продолжения. Она принимает функцию JavaScript , которая будет вызвана после того , как диалог отклонено. Я не могу получить , что функция будет называться.

<script language=javascript>
var continuation = function () {
  location.href = 'http://target-url.com';
}
</script>

<% init_fb_connect XFBML,Api do %>
  <%= fb_user_action(@action, @message, @prompt, 'continuation') %>
<% end %>

Все работает отлично, за исключением функции продолжения не дозвонились. Любые предложения для того, что я делаю неправильно?

Задан 26/04/2009 в 06:32
источник пользователем
На других языках...                            


2 ответов

голоса
0

Хорошо, я никогда не использовал рубин в моей жизни, но что-то о том, что 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)

Порядок параметров, функция fb_user_action Facebooker генерирует для Javascript, кажется, совершенно неправильно для меня. Параметр обратного вызова выглядит он вместо этого будет заменена на ноль, так что ничто никогда не дозвонились.

Что делать, если вместо вызова fb_user_action, вы просто использовали page.call себя, но с параметрами в правильном порядке?

Опять же, я мог быть не в состоянии понять page.call и / или синтаксиса Ruby, здесь. Но я бы перепроверить эту функцию Facebooker, как FB API все время меняется.

Ответил 26/04/2009 в 07:24
источник пользователем

голоса
2

Я просто вырыли в этом больше. Я считаю, что это ошибка Facebooker. Я должен был завернуть параметр обратного вызова в page.literal вызова. Модифицированный метод, который работает ниже:

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"),page.literal(callback),prompt,user_message
  end
end

Я буду следить с разработчиком Facebooker, чтобы попытаться получить это исправлено в будущих версиях.

Ответил 26/04/2009 в 18:45
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more