我创建了一个Facebook帐户作为开发人员。我的应用程序处于实时模式而不是沙箱模式。我希望当我点击按钮然后Facebook登录程序启动。我刚刚创建了一个函数checkLoginStatus()并在单击按钮时调用它。这是我的代码:
import { Component, OnInit } from '@angular/core';
declare const FB: any;
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
token: any;
loged: boolean = false;
user = { name: 'Hello' };
constructor() {
FB.init({
appId: {'my-app-id'},
cookie: true,
xfbml: true, //parse social plugins on this page
version: 'v2.5' //use graph api version 2.5
});
(function (d, s, id, appId) {
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#xfbml=1&version=v2.5&appId="
+ appId; //<--passing config value here
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk', 'my-app-id'));
}
statusChangeCallback(response: any) {
console.log("login function", response);
if (response.status === 'connected') {
console.log('connected', response);
} else {
this.login();
}
}
login() {
FB.login((result: any) => {
console.log("login function", result);
this.loged = true;
this.token = result;
}, { scope: 'user_friends' });
}
me() {
console.log("me function");
FB.api('/fields=id,name,
first_name,gender,picture.width(150).height(150),age_range,friends',
function (result) {
if (result && !result.error) {
this.user = result;
console.log(this.user);
} else {
console.log(result.error);
}
});
}
checkLoginStatus() {
console.log("getLoginStatus");
FB.getLoginStatus(response => {
console.log("getLoginStatus", response);
this.statusChangeCallback(response);
});
}
ngOnInit() {
}
}
这里是html代码:
<div class="fb-login-button" data-max-rows="1"
(click)="checkLoginStatus();" data-size="large" data-button-
type="continue_with">
</div>
当我配置appId时,我在网站URL中提供 本地主机:4200 /
应用已在实时模式下运行,其设置为“应用评论”。我不明白实际发生了什么。