Да, это определенно возможно, но вы должны использовать 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 для работы с файлом междоменного получателя. Я предлагаю выполнить шаги рендеринга XFBML .