Facebooker: Redirect na fb_user_action

stemmen
0

Ik probeer gebruiker Facebooker te verhalen op Facebook publiceren. Wanneer een gebruiker een formulier indient op mijn site, ik gebruik fb_user_action om het dialoogvenster met de vraag of een verhaal kan worden gepubliceerd laten zien. Wanneer die wordt verworpen, ik wil doorsturen naar een andere pagina.

Facebook's documentatie voor showFeedDialog vertelt over de parameter voortzetting. Het duurt een JavaScript-functie die wordt genoemd naar de dialoog wordt afgewezen. Ik kan niet die functie genoemd te worden.

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

Alles werkt perfect, behalve de voortzetting functie niet wordt aangeroepen. Eventuele suggesties voor wat ik verkeerd doe?

De vraag is gesteld op 26/04/2009 om 06:32
bron van user
In andere talen...                            


2 antwoorden

stemmen
0

Ok, ik heb nooit gebruikt Ruby in mijn leven, maar iets aan te Facebooker oproep lijkt me verkeerd. Hier is wat fb_user_action eruit ziet vanuit uw 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

Dus, gebaseerd op wat ik keek over page.call, dat kijkt naar me alsof het javascript als dit zal genereren:

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

Echter, de ondertekening van showFeedDialog is:

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

De volgorde van de parameters die de Facebooker fb_user_action functie is het genereren voor de Javascript lijkt helemaal verkeerd voor mij. De callback parameter lijkt erop dat het in plaats daarvan zou worden vervangen door een nul, dus niets ooit zou gecalled.

Wat gebeurt er als in plaats van het aanroepen van fb_user_action, je gewoon gebruikt page.call jezelf, maar met de parameters in de juiste volgorde?

Nogmaals, ik kon worden niet de page.call en / of Ruby syntax hier te begrijpen. Maar ik zou double-check dat Facebooker functie, de FB API hele tijd verandert.

antwoordde op 26/04/2009 om 07:24
bron van user

stemmen
2

Ik heb net gegraven in deze nog veel meer. Ik denk dat dit is een Facebooker bug. Ik moest de parameter callback verpakken in een page.literal gesprek. De gemodificeerde methode die werkt onder:

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

Ik zal follow-up met de Facebooker ontwikkelaar om te proberen om dit vast te krijgen in een toekomstige versie.

antwoordde op 26/04/2009 om 18:45
bron van user

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