Angulaire 2 Facebook Login
Je suis en train d'élaborer un site web qui a besoin d'être connecté avec Facebook compte. Je suis à l'aide Angulaire 2 et, bien sûr, texte dactylographié. Il fonctionne, Mais pas exactement ce que je voulais. Je ne peux pas reprendre les informations de l'utilisateur.
Let's go pour le 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);
});
}
}
En gros, Quand le chargement de la page j'ai vérifier si l'utilisateur est connecté à Facebook, si pas, j'appelle la méthode de connexion. Le moi méthode est utilisé pour récupérer les informations sur les utilisateurs, comme son nom, prénom etc. Quand je suis connecté en condition navigateur de la console d'imprimer la ligne suivante:
Object {id: "666", name: "Paulo Henrique Tokarski Glinski", first_name: "Paulo", gender: "male", picture: Object…}
Tout est ok! Mais je veux obtenir que l'Objet et le mettre dans un objet Utilisateur! Quelque chose comme ça:
m'méthode:
this.user = result;
console.log(this.user);
Mais il suffit que l'utilisateur existe à l'intérieur de la méthode. Si je l'imprimer à l'extérieur, sa ne retourne rien.
Je veux juste imprimer les noms d'utilisateurs, etc. à la page web du site. J'ai fait presque la même chose avec Angular JS et bien travaillé.
S'il vous plaît! Aidez-moi!
OriginalL'auteur Paulo Tokarski Glinski | 2016-06-12
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser de la graisse flèche fonctions à utiliser le même contexte ...
user
var, mais j'ai besoin de faire quelque chose, comme un clic sur un bouton, pour actualiser le résultat dans ma page.Je suis également à l'aide de la flèche en fonction de monme()
méthode.oui , vous avez besoin d'utiliser ngZone pour résoudre ce problème ... s'il vous plaît reportez-vous à angular.io/docs/ts/latest/api/core/index/NgZone-class.html si vous avez encore besoin de plus d'aide, vous pouvez répondre ...
OriginalL'auteur reda igbaria
Pour l'facebook SDK javascript, il suffit d'ajouter la ligne suivante dans votre index.html
et dans ngOnInit() :
OriginalL'auteur EL missaoui habib
Angulaire 2 de niveau de Service mise en œuvre
Appelant niveau de la fonction, ce code sera dans le composant de votre redirect URI
OriginalL'auteur Ajeet Singh
this
a un tas de quelque chose de magique. Il aide si vous avez une capture de la classethis
dans une variable et utiliser que dans les rappels (de manière à éviter de faire attention à ce que leurthis
est)?par exemple
Bien sûr, si vous ne vous souciez pas si ça fonctionne sur IE developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... — je n'étais même pas sûr que c'était l'OP de l'ensemble du problème, donc je pensais que je venais de donner suis exemple.
il est l'aide de ES6 (comme tous les graves js développeur de nos jours), de sorte qu'il est plus probable à l'aide de babel à transpile son code à l'ES5. pas de problème avec IE. personne n'utilise l'ES6 sans transpiler (je suppose).
OriginalL'auteur Rob Starling