Facebook,iframe app,fb:请求表单,动作属性问题

时间:2009-06-10 04:08:07

标签: facebook fbrequest-form serverfbml iframe-app

我正在制作facebook iframe应用程序

我正在使用自己的表单数据创建一个请求表单。我该怎么办才能处理数据?

如果我把动作=“http://apps.facebook.com/ [appName] / abc.php”,即

<fb:serverfbml>
    <script type="text/fbml">
        <fb:fbml>
            <fb:request-form action="http://apps.facebook.com/[appName]/abc.php" method="post" type="abc" content="abc">
                <textarea name="pm" fb_protected="true" ></textarea>
                <fb:multi-friend-selector showborder="false" max="35" actiontext="test" email_invite="true" bypass="cancel" />
            </fb:request-form> 
        </fb:fbml>
    </script>
</fb:serverfbml>

然后结果很有趣... facebook app的iframe里面有一个facebook页面!

但如果我把action =“http:// [my own domain / facebook connect url] /abc.php”,即

<fb:serverfbml>
    <script type="text/fbml">
        <fb:fbml>
            <fb:request-form action="http://[my own domain / facebook connect url]/abc.php" method="post" type="abc" content="abc">
                <textarea name="pm" fb_protected="true" ></textarea>
                <fb:multi-friend-selector showborder="false" max="35" actiontext="test" email_invite="true" bypass="cancel" />
            </fb:request-form> 
        </fb:fbml>
    </script>
</fb:serverfbml>

然后结果页面将呈现WITHOUT facebook模板(这意味着丢失所有顶级Facebook横幅和底部facebook栏,如facebook聊天等)

任何人都知道什么是错的?

非常感谢您的阅读

4 个答案:

答案 0 :(得分:5)

target =“_ top”的关键是你必须将它放在请求表单和多朋友选择器上,以便它分别处理提交和取消。

请求表单需要target =“_ top”,以便表单在提交时加载到顶部框架中,但取消功能由多朋友选择器控制,而不是请求表单。因此,你需要多朋友选择器上的target =“_ top”,以便取消操作将加载到顶部框架中。

现在,我只是希望Facebook允许取消“无”操作,只会隐藏框架......

答案 1 :(得分:3)

新答案: Facebook已经开始逐步淘汰FBML,并强烈鼓励开发人员切换到Requests 2.0。使用新的FB.ui({method:'apprequest',...});在JavaScript SDK中,这是一种更简单的方法。它还支持Facebook外页面http://af-design.com/blog/2011/02/17/using-facebook-requests-to-promote-a-website/

OLD答案: 我发现传递FBML作为fb:serverfbml的属性有效。 &lt; fb:serverfbml fbml =“{HTML Escaped FBML Here}”&gt;&lt; / fb:serverfbml&gt; 我在这里发布了我的调查结果:http://af-design.com/blog/2010/11/23/fbserverfbml-on-canvas-iframe/

答案 2 :(得分:1)

我处理这个问题的方法是让我的表单处理器页面不发出输出,除了“&lt; fb:redirect&gt;”这指向主应用程序。

答案 3 :(得分:1)

你是如何使用这个&lt; fb:重定向&gt; ?

好吧我发现它尝试添加target =“_ top”

http://apps.facebook.com/myapp'label ='立即加入'/&gt;“                                             行动= “http://apps.facebook.com/myapp”                                             目标=“_顶部”                                             邀请= “真” &GT;