2009-04-26 7 views
0

FacebookにユーザーにFacebookにストーリーを公開しようとしています。ユーザーが自分のサイトにフォームを送信すると、fb_user_actionを使ってストーリーを公開できるかどうかを尋ねるダイアログが表示されます。それが解消されると、私は別のページにリダイレクトしたい。Facebooker:fb_user_actionの後のリダイレクト

Facebookのdocumentation for 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 %> 

継続機能が呼び出されない限り、すべてが完全に機能します。私が間違ってやっていることに対する提案はありますか?

答えて

2

私はこれをさらに掘り下げました。私はFacebookerのバグだと思う。私はpage.literal呼び出しでコールバックパラメータをラップする必要がありました。変更された方法は以下の通りです:

私はFacebookerの開発者にフォローアップして、将来のバージョンでこれを解決しようとしています。

+0

これはFacebookerで修正されており、次のリリースで利用可能になるはずです。 – brantonb

0

私の人生でRubyを使ったことはありませんでしたが、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 

だから、私はそれがこのようなJavaScriptを生成しますように私には見えますpage.call、約見上げたものに基づいて:

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) 

Facebookerのfb_user_action機能は、JavaScriptが生成されるパラメータの順序は、私には完全に間違っているようです。コールバックパラメータは、代わりにnilに置き換えられるように見えるので、何も呼び出されません。

fb_user_actionを呼び出す代わりに、自分でpage.callを使用しましたが、正しい順序でパラメータを使用するとどうなりますか?

ここでもpage.callやRubyの構文を理解できていない可能性があります。しかし、FB APIが常に変化するので、Facebookerの機能を再確認したいと思います。

関連する問題