0

我正在 Facebook 上创建一个 iFrame 应用程序,它基本上只是一个邮件列表注册页面。然而,当人们点击注册时,FB:ui“发布到你的墙上”弹出,用户可以选择分享他们刚刚注册的内容,如果他们愿意的话。它工作正常。

但是,我想找到一种仅向登录 Facebook 的用户显示 FB:ui 的方法。我的应用程序不应该需要用户的任何许可,因为它只是一个登陆页面,让人们可以选择分享,如果他们愿意的话。从来没有完成任何自动共享。

我目前正在使用以下代码:

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

如您所见,我正在尝试仅对登录 Facebook 和我的应用程序或仅登录 Facebook 的用户运行 FB:ui(sharethisnow 功能)。但由于某种原因,上面的代码仅适用于页面管理员。当我以管理员身份登录时,我注册了 FB:ui,它应该会弹出。但是,当我以非管理员身份(只是一般登录 Facebook 用户)查看该页面时,FB:ui 会弹出但说有错误并“请稍后再试”。

对此的任何帮助都会很棒。

4

2 回答 2

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>
于 2011-04-08T11:11:18.623 回答
0

代码看起来不错;您是否检查过您的应用程序是否处于沙盒模式,如果是,“非管理员”是否有权访问该应用程序?

于 2011-04-08T00:35:06.320 回答