Приложение Facebook iFrame - отображение FB: ui в зависимости от того, вошел ли пользователь в систему или нет? - PullRequest
0 голосов
/ 07 апреля 2011

Я создаю приложение 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, но он говорит, что произошла ошибка и «повторите попытку позже».

Любая помощь с этим была бы фантастической.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2011

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

<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>
0 голосов
/ 08 апреля 2011

Код кажется нормальным;Вы проверили, находится ли ваше приложение в режиме песочницы, и если да, имеет ли «не администратор» разрешение на доступ к приложению?

...