gpt4 book ai didi

javascript - Angular 2 Facebook 登录

转载 作者:数据小太阳 更新时间:2023-10-29 03:48:28 25 4
gpt4 key购买 nike

我正在开发一个需要使用 Facebook 帐户登录的网站。我正在使用 Angular 2,当然还有 TypeScript。它有效但不完全是我想要的。我无法收回用户的信息。

让我们来看代码:

import {Component} from 'angular2/core';
import {Main} from './pages/main/main';

declare const FB: any;

@Component({
selector: 'my-app',
templateUrl: 'app/app.html',
directives: [Main]
})

export class AppComponent implements OnInit {

token: any;
loged: boolean = false;
user = { name: 'Hello' };

constructor() { }

statusChangeCallback(response: any) {
if (response.status === 'connected') {
console.log('connected');
} else {
this.login();
}
}

login() {
FB.login(function(result) {
this.loged = true;
this.token = result;
}, { scope: 'user_friends' });
}

me() {
FB.api('/me?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);
}
});
}

ngOnInit() {
FB.getLoginStatus(response => {
this.statusChangeCallback(response);
});
}
}

基本上,当页面加载时,我检查用户是否登录到 Facebook,如果没有,我调用登录方法。 me 方法用于获取用户信息,如姓名、名字等。当我登录条件浏览器控制台时,打印以下行:

Object {id: "666", name: "Paulo Henrique Tokarski Glinski", first_name: "Paulo", gender: "male", picture: Object…}

一切正常!但是我想得到那个对象并放入一个用户对象中!类似的东西:

我的方法:

this.user = result;    
console.log(this.user);

但是用户只存在于方法内部。如果我在外面打印它,它什么都不返回。
我只想在网站页面上打印用户名等。我用 Angular JS 做了几乎相同的事情并且工作得很好。

拜托!帮帮我!

最佳答案

您可以使用粗箭头函数来使用相同的上下文...

login() {
FB.login((result: any) => {
this.loged = true;
this.token = result;
}, { scope: 'user_friends' });
}

关于javascript - Angular 2 Facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37770471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com