Face: Omdirigering etter fb_user_action

stemmer
0

Jeg prøver å bruker Face å publisere historier til Facebook. Når en bruker sender inn et skjema på nettstedet mitt, jeg bruker fb_user_action vise dialogboksen som spør om en historie kan bli publisert. Når det er sagt opp, jeg ønsker å omdirigere til en annen side.

Facebooks dokumentasjon for showFeedDialog snakker om fortsettelsen parameter. Det tar en Javascript-funksjon som vil bli kalt etter at dialogen blir avvist. Jeg kan ikke få denne funksjonen til å bli kalt.

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

Alt fungerer perfekt bortsett videreføring funksjonen ikke kalles. Noen forslag til hva jeg gjør galt?

Publisert på 26/04/2009 klokken 05:32
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Ok, jeg har aldri brukt Ruby i mitt liv, men noe om at Face samtalen ser galt for meg. Her er hva fb_user_action ser ut fra linken din:

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

Så, basert på hva jeg så opp på page.call, som ser ut for meg som det vil generere javascript som dette:

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

Men signaturen til showFeedDialog er:

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

Rekkefølgen av parametrene som Face fb_user_action funksjonen genererer for Javascript virker helt feil for meg. Tilbakeringing parameter ser ut som det i stedet vil bli erstattet av en null, slik at ingenting noen gang ville bli kalt.

Hva om i stedet for å ringe fb_user_action, du bare brukt page.call selv, men med parametrene i riktig rekkefølge?

Igjen, jeg kan ikke å forstå page.call og / eller Ruby syntaks her. Men jeg vil dobbeltsjekke at Face funksjon, som FB API forandrer seg hele tiden.

Svarte 26/04/2009 kl. 06:24
kilden bruker

stemmer
2

Jeg gravde inn i dette mer. Jeg tror dette er en Face bug. Jeg måtte bryte den tilbakeringing parameter i en page.literal samtale. Den modifiserte metode som fungerer er nedenfor:

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

Jeg skal følge opp med Face utbygger for å prøve å få dette fikset i en fremtidig versjon.

Svarte 26/04/2009 kl. 17:45
kilden bruker

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