Facebook sdk.js错误

时间:2016-12-01 10:52:36

标签: javascript facebook facebook-javascript-sdk

我使用facebook api为我的网站获取股票数量。如果我在我的帐户下登录,一切正常。但是如果用户使用不同的帐户登录,那么他在facebook sdk.js文件中会出错。

  

sdk.js:格式化:4150未捕获TypeError:无法读取未定义的属性'accessToken'(...)

我将我的应用公开,我不知道还能做什么。 这是我的代码

(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');
            }

        });
    });

1 个答案:

答案 0 :(得分:0)

如果您首先使用FB.login授权用户,则只能使用JS SDK获取访问令牌。我假设您不想这样做,因为您只想显示URL的相同数量。正确的方法是使用App Access Token,但您必须在服务器端使用它,而不是在客户端使用JavaScript。您需要保密令牌,并且您还应该在服务器上实施缓存,否则您将获得具有太多用户的API限制。

有关访问令牌的更多信息: