我正在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弹出,但表示存在错误并且“请稍后再试”。
任何帮助都会很棒。
答案 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>