Facebooker: Rediriger après fb_user_action

voix
0

Je suis en train de Facebooker utilisateur de publier des histoires sur Facebook. Lorsqu'un utilisateur soumet un formulaire sur mon site, j'utilise fb_user_action pour afficher la boîte de dialogue demandant si une histoire peut être publié. Quand cela est rejeté, je veux rediriger vers une autre page.

Facebook documentation pour showFeedDialog parle sur le paramètre de continuation. Il faut une fonction JavaScript qui sera appelée après la boîte de dialogue est rejeté. Je ne peux pas obtenir cette fonction à appeler.

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

Tout fonctionne parfaitement, sauf la fonction de poursuite ne soit pas appelé. Toutes les suggestions pour ce que je fais mal?

Créé 26/04/2009 à 06:32
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Ok, je ne l'ai jamais utilisé Ruby dans ma vie, mais quelque chose sur cet appel Facebooker semble erroné pour moi. Voici ce que fb_user_action ressemble de votre lien:

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

Ainsi, en fonction de ce que je levais les yeux au sujet page.call, qui me semble que cela va générer le javascript comme ceci:

FB.Connect.showFeedDialog(template_id,data,target_ids,body_general,nil,promptConnect,callback,prompt,user_message);

Cependant, la signature de showFeedDialog est:

FB.Connect.showFeedDialog(template_id,data,body_general,target_ids,callback,prompt,user_message)

L'ordre des paramètres que la fonction fb_user_action Facebooker génère le Javascript semble tout à fait tort de moi. Le paramètre de rappel ressemble à ce serait plutôt remplacé par un nul, alors rien ne serait jamais appelé.

Et si au lieu d'appeler fb_user_action, vous venez d'utiliser page.call vous, mais avec les paramètres dans le bon ordre?

Encore une fois, je pourrais manquerais de comprendre la page.call et / ou la syntaxe Ruby ici. Mais je revérifier que la fonction Facebooker, comme l'API FB change tout le temps.

Créé 26/04/2009 à 07:24
source utilisateur

voix
2

Je viens creusais dans ce plus. Je crois que c'est un bug Facebooker. Je devais envelopper le paramètre de rappel dans un appel page.literal. La méthode modifiée qui fonctionne est ci-dessous:

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

Je vais suivre avec le développeur de Facebooker pour essayer d'obtenir que ce soit réglé dans une future version.

Créé 26/04/2009 à 18:45
source utilisateur

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