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