Могу ли я использовать Facebook fb: friend-selector в фрейме? - PullRequest
21 голосов
/ 04 мая 2009

Я пытаюсь использовать тег Facebook fb:friend-selector FBML, но мое приложение работает в iframe. Можно ли использовать этот тег в iframe? Если да, у кого-нибудь есть примеры?

Ответы [ 4 ]

16 голосов
/ 04 мая 2009

Да, это определенно возможно, но вы должны использовать 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 .

9 голосов
/ 09 ноября 2010

Вопрос в этой теме по-прежнему актуален, но ответ устарел. Вы должны использовать новый 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/

3 голосов
/ 29 июля 2010

Так как в фрейме много вопросов о селекторе друзей.

Ребята, правильный синтаксис теперь <fb:serverfbml width="650px">

0 голосов
/ 31 января 2011

одно ОСНОВНОЕ и ВАЖНОЕ замечание, которое упускается из-за того, что многие из вас (включая меня) придерживаются сценариев где угодно ... но файл load.js "FB" необходимо загрузить НЕМЕДЛЕННО после тег body.

по крайней мере, это то, что я нашел, чтобы заставить все работать и гудеть соответственно. Я нашел это в сообщении на каком-то другом сайте (не был уверен, должен ли я публиковать это здесь или нет ...), но это произошло после того, как я потратил бесчисленное количество часов, выполняя вышеупомянутое - а также следуя всем остальным 1,2, 3 шага в получении размера iframe ...

и теперь я заставил его работать :) 1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...