2016-12-01 66 views
-1

我使用Facebook API来获取我的网站的股份数。一切正常,如果我登录在我的帐户下。但是,如果用户登录不同的帐户,然后他在facebook sdk.js文件中得到错误。Facebook sdk.js错误

sdk.js:formatted:4150Uncaught TypeError: Cannot read property 'accessToken' of undefined(…)

我公开我的应用程序,我不知道还有什么要做。 这里是我的代码

(function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '1836193963304496', 
     xfbml  : true, 
     version : 'v2.8' 
    }); 
    }; 
FB.getLoginStatus(function(response) { 
     var accessToken = response.authResponse.accessToken; 
     var url="https://graph.facebook.com/v2.8/?access_token="+accessToken+"&format=json&id="+encodeURIComponent(location.href)+"&method=get&pretty=0&suppress_http_code=1" 
     $.get(url,{},function(response){ 
      if(response.share.share_count>0){ 
       $(".social-likes__counter_facebook").html(response.share.share_count).removeClass('social-likes__counter_empty'); 
      } 

     }); 
    }); 
+0

调试getLoginStatus的响应:的console.log(响应)。那里有什么? – luschn

+0

它说我没有授权 – nnnzzzaaa

+0

...那是什么告诉你的? – luschn

回答

0

,如果你有FB.login第一授权用户,您只能获得访问令牌与JS SDK。我假设你不想那样做,因为你只是想显示一个URL的相似数。这样做的正确方法是使用App Access令牌,但您必须在服务器端使用它,而不是在客户端使用JavaScript。您需要保留令牌秘密,并且您还应该在服务器上实施缓存,否则将会遇到过多用户的API限制。关于访问令牌

的更多信息: