Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook iFrame应用程序-根据用户是否登录显示FB:ui?_Facebook_User Interface_Iframe_Logged - Fatal编程技术网

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

Facebook iFrame应用程序-根据用户是否登录显示FB:ui?,facebook,user-interface,iframe,logged,Facebook,User Interface,Iframe,Logged,我正在Facebook上创建一个iFrame应用程序,它基本上只是一个邮件列表注册页面。但是,当用户单击“注册”时,会弹出FB:ui“张贴到您的墙上”,并允许用户选择共享他们刚刚注册的内容(如果他们愿意)。它很好用 但是,我想找到一种方法,只向登录Facebook的用户显示FB:ui。我的应用程序不需要用户的任何许可,因为它只是一个登录页,如果用户愿意,可以选择共享。从来没有任何自动共享完成 我目前正在使用以下代码: <div id="fb-root"></div>

我正在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>

FB.init({
appId:“我的应用程序id”,cookie:true,
状态:true,xfbml:true
});
FB.getLoginStatus(函数(响应){
if(response.session){
sharethisnow();
}否则{
//没有可用的用户会话,您不认识的人
如果(response.status==“notConnected”){
//但用户已登录到facebook
sharethisnow();
}否则{
//用户未登录facebook
}
}
});
函数sharethisnow(){
ui({method:'feed',
链接:“我的链接”,
名称:'我的页面名称',
标题:“我的标题”,
描述:'我的描述',
图片:“我的图片”,
消息:'我的消息'});
}
如您所见,我正试图仅对登录Facebook和我的应用程序或仅登录Facebook的用户运行FB:ui(sharethisnow函数)。但是由于某些原因,上面的代码只适用于页面管理员。当我以管理员的身份登录时,我注册了,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:'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>

FB.init({
appId:'APP_ID',cookie:true,
状态:true,xfbml:true
});
FB.getLoginStatus(函数(响应){
如果(response.status==“未知”){
返回;
}
sharethisnow();
});
函数sharethisnow(){
FB.ui({
方法:“提要”,
留言:“我的留言”
});
}

Hi。谢谢你的回复。不,应用程序在沙箱模式关闭的情况下正在测试,但仍然存在问题。如果页面管理员查看页面(sharethisnow()函数按其应加载并填充标题、标题、说明等),则效果很好,但当我以非管理员身份尝试时,脚本会加载,但会显示有错误并提示“请稍后再试”,并且不会填充内容。我真的不明白为什么它不起作用。这是否意味着非管理员用户需要授予该应用程序权限才能正确执行FB:ui?simplet代码也不起作用。当我以非管理员身份查看页面时,当FB:ui加载时仍然会出现错误。我已经检查了我的页面设置,它们看起来很好,但也许你可以告诉我要查看哪些设置?我真的很困惑!:)@印度时报:你在工作吗?“高级”选项卡下的迁移设置是什么?是的,该页面适合我。奇怪。。。我的迁移设置都已启用,但流Post URL安全性已禁用。