我正在尝试使用Facebook的fb:friend-selector
FBML标记,但我的应用程序在iframe中运行。是否可以在iframe中使用此标记?如果有的话,有人有任何例子吗?
答案 0 :(得分:16)
是的,这绝对可以,但您必须使用Facebook Connect和XFBML。具体来说,您希望使用fb:serverfbml标记来使fb:friend-selector工作。我有一个iframe应用程序,我在标准“邀请朋友加入你的应用程序”上下文中使用了所有这些和fb:friend-selector,它运行得很好。
这是我的模板文件的正文,它在iframe的正文中输出:
<fb:serverfbml style="width: 650px;">
<script type="text/fbml">
<fb:fbml>
<fb:request-form
action="http://example.com/invite/sent"
method="POST"
invite="true"
type="My App"
content="Try out my app!
<fb:req-choice url='http://your-facebook-canvas-url'
label='<?php echo htmlspecialchars("Accept button text",ENT_QUOTES); ?>'
/>
" >
<fb:multi-friend-selector
showborder="false"
actiontext="Invite your friends to try My App."
exclude_ids="<?php echo $excludeIds; ?>"
rows="3"
/>
</fb:request-form>
</fb:fbml>
</script>
</fb:serverfbml>
在页面的页脚中,我有标准的Facebook Connect代码,它将加载并呈现fb:serverfbml内容:
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
<script type="text/javascript">
FB_RequireFeatures(
["CanvasUtil"],
function(){
FB.XdComm.Server.init('/xd_receiver.html');
FB.CanvasClient.startTimerToSizeToContent();
}
);
</script>
<script type="text/javascript">
FB_RequireFeatures(["XFBML"], function(){ FB.Facebook.init("Your Facebook API Key", "/xd_receiver.html"); });
</script>
这应该是您所需要的(当然,请填写您自己的选项)。您必须设置Facebook Connect才能使用跨域接收器文件。我建议关注rendering XFBML steps。
答案 1 :(得分:9)
这个帖子中的问题仍然有用,但答案已经过时了。您应该使用新的JavaScript SDK。这应该替换zombat发布的第二个代码段
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
FB.init({appId: 'your app id',
status: true,
cookie: true,
xfbml: true});
FB.Event.subscribe('auth.sessionChange', function(response) {
if (response.session) {
// A user has logged in, and a new cookie has been saved
} else {
// The user has logged out
}
});
</script>
此处有更多信息:http://www.clickonchris.com/2010/11/facebook-javascript-sdks/
答案 2 :(得分:3)
因为这是关于iframe中的朋友选择器的很多问题。
现在正确的sintax是<fb:serverfbml width="650px">
答案 3 :(得分:0)
错过的一个主要和重点是你们中的许多人(包括我)几乎在任何地方都在脚本中......但是“FB”load.js文件需要加载立即身体标签之后。
至少这是我发现让一切工作和相应的嗡嗡声。我在其他一些网站的帖子上找到了它(不知道我是否应该在这里张贴或不...)但它是在花了无数个小时之后,做了上面提到的 - 以及跟随每个其他1,2, 3步确保iframe适当大小......
现在我已经开始工作了:)