Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
166
rated 0 times [  171] [ 5]  / answers: 1 / hits: 19804  / 8 Years ago, sun, june 12, 2016, 12:00:00

I am developing an website that needs to be logged in with Facebook account. I am using Angular 2 and, of course, TypeScript. It works But not exactly what I wanted. I can't take back the user's information.



Let's go to the code:



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);
});
}
}


Basically, When the page loads I check if the user is logged in to Facebook, if not, I call the login method. The me method is used to fetch the users information, like its name, first name etc. When I logged in condition browser console print the following line:



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


Everything ok! But I want to get that Object and put into a User object! Something like that:



me method:



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


But the user just exists inside the method. If I print it outside, its returns nothing.

I just want to print the users name etc. at the website page. I did almost the same thing with Angular JS and worked well.



Please! Help me!


More From » facebook

 Answers
10

you can use fat arrow functions to use the same context ...



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

[#61804] Thursday, June 9, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
juancarlos

Total Points: 580
Total Questions: 105
Total Answers: 103

Location: Grenada
Member since Sun, Dec 20, 2020
3 Years ago
;