Facebooker: Redirect dopo fb_user_action

voti
0

Sto cercando di Facebooker all'utente di pubblicare storie a Facebook. Quando un utente invia un modulo sul mio sito, sto usando fb_user_action per mostrare la finestra di dialogo che chiede se una storia può essere pubblicato. Quando ciò è respinto, voglio reindirizzare a una pagina diversa.

Di Facebook documentazione per showFeedDialog parla il parametro di continuazione. Ci vuole una funzione JavaScript che verrà chiamata dopo che la finestra di dialogo è respinto. Non riesco a ottenere che funzione da chiamare.

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

Tutto funziona alla perfezione, tranne la funzione di continuazione non viene chiamato. Eventuali suggerimenti per quello che sto facendo di sbagliato?

È pubblicato 26/04/2009 alle 06:32
fonte dall'utente
In altre lingue...                            


2 risposte

voti
0

Ok, non ho mai usato Ruby in vita mia, ma qualcosa in quella chiamata Facebooker sembra sbagliato per me. Ecco cosa fb_user_action sembra dal tuo link:

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

Quindi, sulla base di quello che ho guardato su page.call, che mi sembra che genererà javascript in questo modo:

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

Tuttavia, la firma di showFeedDialog è:

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

L'ordine dei parametri che la funzione fb_user_action Facebooker sta generando per il Javascript sembra completamente sbagliato per me. Il parametro di callback sembra che sarebbe invece essere sostituito da un pari a zero, quindi nulla sarebbe mai chiamato.

Che cosa succede se invece di chiamare fb_user_action, hai appena usato page.call da soli, ma con i parametri nel giusto ordine?

Anche in questo caso, potrei non riuscire a capire il page.call e / o la sintassi di Ruby qui. Ma mi piacerebbe ricontrollare quella funzione Facebooker, come l'API FB cambia tutto il tempo.

Risposto il 26/04/2009 a 07:24
fonte dall'utente

voti
2

Ho appena scavato in questo di più. Credo che questo sia un bug Facebooker. Ho dovuto avvolgere il parametro di callback in una chiamata page.literal. Il metodo modificato che funziona è qui sotto:

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

Io ti seguirò con lo sviluppatore Facebooker per cercare di ottenere questo risolto in una versione futura.

Risposto il 26/04/2009 a 18:45
fonte dall'utente

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