Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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 fb:如果没有显示面,登录按钮将无法工作_Facebook_Facebook Javascript Sdk_Facebook Php Sdk - Fatal编程技术网

Facebook fb:如果没有显示面,登录按钮将无法工作

Facebook fb:如果没有显示面,登录按钮将无法工作,facebook,facebook-javascript-sdk,facebook-php-sdk,Facebook,Facebook Javascript Sdk,Facebook Php Sdk,我们今天刚刚切换到新的PHPSDK和JS。但问题很奇怪。当我们不使用带有perms属性的showfaces时,它不会显示弹出窗口。只有这样才能获得权限弹出窗口出现,我们需要使用显示面属性 这是虫子吗 <fb:login-button perms="email, publish_stream, offline_access, create_event, user_photos, user_online_presence, user_videos, user_website, user_eve

我们今天刚刚切换到新的PHPSDK和JS。但问题很奇怪。当我们不使用带有perms属性的showfaces时,它不会显示弹出窗口。只有这样才能获得权限弹出窗口出现,我们需要使用显示面属性

这是虫子吗

<fb:login-button perms="email, publish_stream, offline_access, create_event, user_photos, user_online_presence, user_videos, user_website, user_events, user_relationships, user_interests" size="large">Sign Up With Facebook</fb:login-button>

<div id="fb-root"></div>
  <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId: '<?php echo $facebook->getAppID() ?>',
          cookie: true,
          xfbml: true,
          oauth: true
        });
        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
        FB.Event.subscribe('auth.logout', function(response) {
          window.location.reload();
        });
      };
      (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>
注册Facebook
window.fbAsyninit=函数(){
FB.init({
appId:“”,
曲奇:是的,
xfbml:是的,
真的吗
});
FB.Event.subscribe('auth.login',函数(响应){
window.location.reload();
});
FB.Event.subscribe('auth.logout',函数(响应){
window.location.reload();
});
};
(功能(){
var e=document.createElement('script');e.async=true;
e、 src=document.location.protocol+
“//connect.facebook.net/en_US/all.js”;
document.getElementById('fb-root').appendChild(e);
}());
谢谢

编辑:


天哪。我刚刚找到了解决方案,有了新的JSSDK,我们必须使用scope而不是perms属性

或者,您可以使用纯Javascript并制作自己的按钮

<script>
    function addPermissions(permissions){
        FB.login(function(response) {
            if (response.session) {
                if (response.perms) {
                    // user is logged in and granted some permissions.

                } else {
                    // user is logged in, but did not grant any permissions

                }
            } else {
                // user is not logged in
            }
        }, {perms:permissions});
    }
</script>
<a onclick="addPermissions("email, publish_stream,...");">Click me</a>

函数addPermissions(权限){
FB.登录(功能(响应){
if(response.session){
if(response.perms){
//用户已登录并被授予某些权限。
}否则{
//用户已登录,但未授予任何权限
}
}否则{
//用户未登录
}
},{perms:permissions});
}
点击我

对于新的JS SDK,我们必须使用scope而不是perms属性

他并不是在要求一个替代的解决方案:)是的,我知道这个替代方案,但我不想那样使用,thx Thox Though我想我已经被XFBML烧坏了太多,以至于无法接近它。Javascript在我使用过的情况下更可靠。出于好奇,尝试更少的权限,看看会发生什么。比如:
perms=“read\u stream”
尝试过,我只使用了1个权限,但没有正确工作。如果FB.init中的oauth参数设置为true,则必须使用scope参数而不是perms。