错误TS2304:在角度6 FB登录中找不到名称'FB'



我正试图通过触发一个点击事件,将facebookapi与angular 6一起使用。我了解window.fbSyncInit,它首先加载sdk,然后在里面我可以使用FB.login,它自动运行,

但我想在window.fbSyncInit.之后从组件html调用一个函数

indx.html,它将在我不想要的负载上自动调用fb登录

window.fbAsyncInit = function() {
FB.init({
appId      : 'my-app-id',
cookie     : true,
xfbml      : true,
version    : 'v3.1'
});
FB.AppEvents.logPageView();
//i can do this instead that will call fb login automatically, bt i want a click event from component.html file
FB.login(function(response) {
console.log(response); //here i am getting response automatially that i dont want, i want to fire a click event 
});
}
(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'));

component.html在这里我想从函数内的点击事件调用fb.login

<button type="button" class="btn btn-facebook" (click) = "facebookLogin();">Facebook Login</button>

component.ts调用此函数,但在index.html 中的fbAsyncInit之后未进行初始化

facebookLogin(){
FB.login((response)=>
{
console.log('submitLogin',response);
if (response.authResponse)
{
//login success
//login success code here
//redirect to home page
}else{
console.log('User login failed');
}
});
}

我想在index.html中单击fbAsyncinit时调用这个函数,而不会出现错误。你能推荐吗

导入后声明。

<。。导入…>

声明var FB;

@组件({选择器:"应用程序主页",。。。})

最新更新