Facebook应用:权限不更新

时间:2013-11-29 12:45:50

标签: facebook facebook-graph-api facebook-javascript-sdk

我正在制作一个facebook应用程序,除了基本权限之外我还需要权限。我已尝试使用范围以及更改应用程序设置,但我仍然只获得基本权限而没有其他权限。以下是代码:

<html>
<head></head>
<body>
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
  FB.init({
    appId      : 'xxxxxxxxxxxx',
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    xfbml      : true  // parse XFBML
  });

  FB.Event.subscribe('auth.authResponseChange', function(response) {
    if (response.status === 'connected') {
      testAPI();
    } else if (response.status === 'not_authorized') {
       FB.login(function(response) {
    // handle the response
    }, {scope:'user_photos,user_friends,friends_photos,user_status,publish_stream,user_photo_video_tags'});
    } else {
       FB.login(function(response) {
        // handle the response
        }, {scope:'user_photos,user_friends,friends_photos,user_status,publish_stream,user_photo_video_tags'});
    }
  });
  };

  // Load the SDK asynchronously
  (function(d){
   var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
   if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js";
   ref.parentNode.insertBefore(js, ref);
  }(document));

  function testAPI() {
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {
      console.log('Good to see you, ' + response.name + '.');
    });
  }
});
</script>

<fb:login-button show-faces="true" width="200" max-rows="1"></fb:login-button>
</body>
</html>

我知道应用程序权限传播需要一些时间,但我已经等了好几个小时了。这里有什么错误吗? 感谢。

1 个答案:

答案 0 :(得分:1)

不确定为什么你的代码无法运行,我还没有尝试在我的机器上运行它,我在这里发布了一个有效的代码。请按照以下步骤尝试使用此代码

  1. 在Facebook上创建一个新应用。
  2. 在“权限”选项卡中,从用户中选择所需的用户权限。
  3. 在下面提到的代码中,输入您的应用ID并尝试运行它。
  4. 以下代码取自http://hayageek.com/examples/oauth/facebook/oauth-javascript/index.php,是Javascript SDK的基本实现。

    <html>
    <body>
    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'XXXX', // App ID
          channelUrl : 'http://192.168.1.146/facebook/index.html', // Channel File
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
        });
    
    
        FB.Event.subscribe('auth.authResponseChange', function(response) 
        {
         if (response.status === 'connected') 
        {
            document.getElementById("message").innerHTML +=  "<br>Connected to Facebook";
            //SUCCESS
    
        }    
        else if (response.status === 'not_authorized') 
        {
            document.getElementById("message").innerHTML +=  "<br>Failed to Connect";
    
            //FAILED
        } else 
        {
            document.getElementById("message").innerHTML +=  "<br>Logged Out";
    
            //UNKNOWN ERROR
        }
        }); 
    
        };
    
        function Login()
        {
    
            FB.login(function(response) {
               if (response.authResponse) 
               {
                    getUserInfo();
                } else 
                {
                 console.log('User cancelled login or did not fully authorize.');
                }
             },{scope: 'user_photos'});
    
    
        }
    
      function getUserInfo() {
            FB.api('/me', function(response) {
    
          var str="<b>Name</b> : "+response.name+"<br>";
              str +="<b>Link: </b>"+response.link+"<br>";
              str +="<b>Username:</b> "+response.username+"<br>";
              str +="<b>id: </b>"+response.id+"<br>";
              str +="<b>Email:</b> "+response.email+"<br>";
              str +="<input type='button' value='Get Photo' onclick='getPhoto();'/>";
              str +="<input type='button' value='Logout' onclick='Logout();'/>";
              document.getElementById("status").innerHTML=str;
    
        });
        }
        function getPhoto()
        {
          FB.api('/me/picture?type=normal', function(response) {
    
              var str="<br/><b>Pic</b> : <img src='"+response.data.url+"'/>";
              document.getElementById("status").innerHTML+=str;
    
        });
    
        }
        function Logout()
        {
            FB.logout(function(){document.location.reload();});
        }
    
      // Load the SDK asynchronously
      (function(d){
         var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
         if (d.getElementById(id)) {return;}
         js = d.createElement('script'); js.id = id; js.async = true;
         js.src = "//connect.facebook.net/en_US/all.js";
         ref.parentNode.insertBefore(js, ref);
       }(document));
    
    </script>
    
    </div>
    </body>
    </html>
    

    更新:希望这能解决您的问题,今晚我会看一下你的问题并解释它出了什么问题。