Facebook iFrame应用程序 - 根据用户是否登录显示FB:ui?

时间:2011-04-07 16:22:00

标签: facebook user-interface iframe logged

我正在Facebook上创建一个iFrame应用程序,它基本上只是一个邮件列表注册页面。但是,当人们单击“注册”时,会弹出FB:ui“Post To Your Wall”,并为用户提供分享他们刚刚注册的内容的选项。它工作正常。

但是,我想找到一种方法来显示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 :(得分:0)

代码似乎很好;你检查过你的应用程序是否处于沙箱模式,如果是,“非管理员”是否有权访问该应用程序?

答案 1 :(得分:0)

它对我来说很好,也许检查页面设置(私人/公共)。首先尝试这个更简单的代码:

<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>