<script>
var userId = '1';
var appId = 'MYAPPID';
var appHost = 'https://localhost:44300/';
// Api holder
FBe = {};
// FB JS SDK
window.fbAsyncInit = function () {
FBe = FB;
FBe.init({
appId: appId,
status: true,
cookie: true,
xfbml: true,
frictionlessRequests: true
});
};
(function (d, debug) {
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" + (debug ? "/debug" : "") + ".js";
ref.parentNode.insertBefore(js, ref);
}(document, /*debug*/ false));
</script>
<script>
// Test
function fbTest() {
FBe.api('/me', function (response) {
alert('Your name is ' + response.name);
});
}
fbTest();
</script>
上面的代码给了我这个:
TypeError: FBe.api is not a function
为什么我会收到此错误?
我该如何解决?
答案 0 :(得分:1)
您过早地致电fbTest()
。你必须等到调用window.fbAsyncInit
之后。 FB API尚未加载。
因为您要异步加载FB API,所以在调用window.fbAsyncInit
之后才能使用它。在页面加载时使用FB API应该从window.fbAsyncInit
调用。