Приложение Facebook iFrame — отображение FB: пользовательского интерфейса в зависимости от того, авторизован пользователь или нет?

#facebook #user-interface #iframe #logged

#Facebook #пользовательский интерфейс #iframe

Вопрос:

Я создаю приложение iFrame на Facebook, которое по сути является просто страницей регистрации в списке рассылки. Однако, когда люди нажимают Зарегистрироваться, появляется FB: ui «Опубликовать на вашей стене» и дает пользователю возможность поделиться тем, на что они только что подписались, если они захотят. Работает нормально.

Однако я хочу найти способ отображать FB: ui ТОЛЬКО для пользователей, которые вошли в Facebook. Моему приложению не должно требоваться никакого разрешения от пользователей, поскольку это просто целевая страница, которая дает людям возможность поделиться, если они захотят. Автоматический обмен никогда не выполняется.

В настоящее время я использую приведенный ниже код:

 <div id="fb-root"></div>
      <script src="http://connect.facebook.net/en_US/all.js">
      </script>
<script>
         FB.init({ 
            appId:'my app id', cookie:true, 
            status:true, xfbml:true 
         });
         
         FB.getLoginStatus(function(response) {
if(response.session) {
sharethisnow();
} else {
// no user session available, someone you dont know
if(response.status == "notConnected") {
// But user is logged into facebook
sharethisnow();
} else {
// User is not logged into facebook
}
}
});

function sharethisnow() {
         FB.ui({ method: 'feed',  
            link: 'my link',
            name: 'my page name',
            caption: 'my caption',
            description: 'my decription',
            picture: 'my picture',
            message: 'my message'});
            }
      
      </script>
  

Как вы можете видеть, я пытаюсь запустить FB: ui (функцию sharethisnow) только для пользователей, которые либо вошли в Facebook и мое приложение, либо вошли только в Facebook. Но по какой-то причине приведенный выше код работает только для администраторов страниц. Когда я вхожу в систему как администратор, я регистрируюсь, и FB: ui появляется, как и должно быть. Однако, когда я просматриваю страницу как не администратор (просто обычный пользователь Facebook, вошедший в систему), появляется FB: ui, но говорит, что произошла ошибка и «пожалуйста, повторите попытку позже».

Ответ №1:

У меня все работает нормально, возможно, проверьте настройки страницы (частная / общедоступная). Также попробуйте сначала этот более простой код:

 <div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
 FB.init({ 
    appId:'APP_ID', cookie:true, 
    status:true, xfbml:true 
 });

FB.getLoginStatus(function(response) {
    if(response.status == "unknown") {
        return;
    }
    sharethisnow();
});

function sharethisnow() {
    FB.ui({
        method: 'feed',
        message: 'my message'
    });
}
</script>
  

Комментарии:

1. Простой код также не работает. По-прежнему появляется ошибка при загрузке FB: ui, когда я просматриваю страницу не как администратор. Я проверил настройки своей страницы, и они кажутся нормальными, но, может быть, вы могли бы сказать мне, на какие именно настройки обратить внимание? Я действительно в замешательстве! 🙂

2. @hindutimes: у вас это работает? также каковы ваши настройки миграции на вкладке дополнительно?

3. Да, эта страница работает у меня. Странно… Все мои настройки миграции включены, за исключением безопасности URL-адреса потоковой публикации, которая отключена.