src/providers/facebook-login-provider.ts
Properties |
|
Methods |
constructor(clientId: string)
|
||||||
Defined in src/providers/facebook-login-provider.ts:9
|
||||||
Parameters :
|
Public isInitialize |
isInitialize:
|
Type : boolean
|
Defined in src/providers/facebook-login-provider.ts:7
|
Public loginProviderObj |
loginProviderObj:
|
Type : LoginProviderClass
|
Default value : new LoginProviderClass()
|
Defined in src/providers/facebook-login-provider.ts:9
|
Static Readonly PROVIDER_ID |
PROVIDER_ID:
|
Type : string
|
Default value : 'FACEBOOK'
|
Defined in src/providers/facebook-login-provider.ts:8
|
isInitialize |
isInitialize:
|
Type : boolean
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:6
|
Static drawUser | ||||||
drawUser(response: any)
|
||||||
Defined in src/providers/facebook-login-provider.ts:43
|
||||||
Parameters :
Returns :
SocialUser
|
initialize |
initialize()
|
Defined in src/providers/facebook-login-provider.ts:18
|
Returns :
Promise<SocialUser>
|
signIn |
signIn()
|
Defined in src/providers/facebook-login-provider.ts:53
|
Returns :
Promise<SocialUser>
|
signOut |
signOut()
|
Defined in src/providers/facebook-login-provider.ts:66
|
Returns :
Promise<any>
|
initialize |
initialize()
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:7
|
Returns :
Promise<SocialUser>
|
loadScript | |||||||||
loadScript(obj: LoginProviderClass, onload: any)
|
|||||||||
Inherited from
BaseLoginProvider
|
|||||||||
Defined in BaseLoginProvider:11
|
|||||||||
Parameters :
Returns :
void
|
signIn |
signIn()
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:8
|
Returns :
Promise<SocialUser>
|
signOut |
signOut()
|
Inherited from
BaseLoginProvider
|
Defined in BaseLoginProvider:9
|
Returns :
Promise<any>
|
import { BaseLoginProvider } from '../entities/base-login-provider';
import { SocialUser, LoginProviderClass } from '../entities/user';
declare let FB: any;
export class FacebookLoginProvider extends BaseLoginProvider {
public isInitialize: boolean;
public static readonly PROVIDER_ID = 'FACEBOOK';
public loginProviderObj: LoginProviderClass = new LoginProviderClass();
constructor(private clientId: string) {
super();
this.loginProviderObj.id = clientId;
this.loginProviderObj.name = 'FACEBOOK';
this.loginProviderObj.url = 'https://connect.facebook.net/en_US/sdk.js';
}
initialize(): Promise<SocialUser> {
return new Promise((resolve, reject) => {
this.loadScript(this.loginProviderObj, () => {
FB.init({
appId: this.clientId,
autoLogAppEvents: true,
cookie: true,
xfbml: true,
version: 'v2.9'
});
this.isInitialize = true;
FB.AppEvents.logPageView();
FB.getLoginStatus(function (response: any) {
if (response.status === 'connected') {
const accessToken = FB.getAuthResponse()['accessToken'];
FB.api('/me?fields=name,email,picture', (res: any) => {
resolve(FacebookLoginProvider.drawUser(Object.assign({}, {token: accessToken}, res)));
});
}
});
});
});
}
static drawUser(response: any): SocialUser {
let user: SocialUser = new SocialUser();
user.id = response.id;
user.name = response.name;
user.email = response.email;
user.token = response.token;
user.photoUrl = 'https://graph.facebook.com/' + response.id + '/picture?type=normal';
return user;
}
signIn(): Promise<SocialUser> {
return new Promise((resolve, reject) => {
FB.login((response: any) => {
if (response.authResponse) {
const accessToken = FB.getAuthResponse()['accessToken'];
FB.api('/me?fields=name,email,picture', (res: any) => {
resolve(FacebookLoginProvider.drawUser(Object.assign({}, {token: accessToken}, res)));
});
}
}, { scope: 'email,public_profile' });
});
}
signOut(): Promise<any> {
return new Promise((resolve, reject) => {
FB.logout((response: any) => {
resolve();
});
});
}
}