我在Google Chrome浏览器中运行此代码时,出现以下错误:
未捕获的ReferenceError :未定义
FB
我已经阅读了有关同一错误的其他多个问题,但似乎没有一个解决方案。
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxxxx',
autoLogAppEvents : true,
xfbml : true,
version : 'v3.2'
});
};
(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 = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
FB.api(
'/me',
'GET',
{"fields":"id,name,posts{picture,message,comments{likes}}"},
function(response) {
// Insert your code here
}
);
我希望Facebook API返回我选择的字段。
我的代码是Facebook文档中显示的代码的副本。
答案 0 :(得分:1)
在初始化JS SDK之前,您不能使用FB:
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxxxx',
autoLogAppEvents : true,
xfbml : true,
version : 'v3.2'
});
FB.api(
'/me',
'GET',
{"fields":"id,name,posts{picture,message,comments{likes}}"},
function(response) {
console.log(response);
}
);
};
(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 = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
顺便说一句,未经用户授权,此代码将不起作用。具体操作方法如下:https://developers.facebook.com/docs/facebook-login/web/
文档中还有一个完整的示例:https://developers.facebook.com/docs/facebook-login/web/#example