UNPKG

ngx-social-button

Version:

Social login/share buttons for Angular 6, 7, 8

124 lines (123 loc) 12.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { BaseLoginProviderImpl } from '../entities/baseLoginProviderImpl'; import { SocialUser, LoginProviderClass } from '../entities/user'; export class FacebookLoginProvider extends BaseLoginProviderImpl { /** * @param {?} clientId */ constructor(clientId) { super(); this.clientId = clientId; this.TYPE = 'facebook'; this.loginProviderObj = new LoginProviderClass(); this.loginProviderObj.id = clientId; this.loginProviderObj.name = 'facebook'; this.loginProviderObj.url = 'https://connect.facebook.net/en_US/sdk.js'; } /** * @return {?} */ initialize() { return new Promise((resolve, reject) => { this.loadScript(this.loginProviderObj, () => { FB.init({ appId: this.clientId, autoLogAppEvents: true, cookie: true, xfbml: true, version: 'v2.8' }); FB.AppEvents.logPageView(); FB.getLoginStatus(function (response) { if (response.status === 'connected') { /** @type {?} */ const accessToken = FB.getAuthResponse()['accessToken']; FB.api('/me?fields=name,email,picture', (res) => { resolve(FacebookLoginProvider.drawUser(Object.assign({}, { token: accessToken }, res))); }); } }); }); }); } /** * @param {?} response * @return {?} */ static drawUser(response) { /** @type {?} */ let user = new SocialUser(); user.id = response.id; user.name = response.name; user.email = response.email; user.accessToken = response.accessToken; user.image = 'https://graph.facebook.com/' + response.id + '/picture?type=normal'; return user; } /** * @param {?=} scopes * @return {?} */ signIn(scopes) { return new Promise((resolve, reject) => { FB.login((response) => { console.log("facebook", response); if (response.authResponse) { /** @type {?} */ const accessToken = FB.getAuthResponse()['accessToken']; FB.api('/me?fields=name,email,picture', (res) => { console.log("me", res); resolve(FacebookLoginProvider.drawUser(Object.assign({}, { accessToken: accessToken }, res))); }); } }, { scope: scopes && scopes.length > 0 ? scopes.join(',') : 'email,public_profile' }); }); } /** * @param {?=} share * @return {?} */ sharing(share) { return new Promise((resolve, reject) => { FB.ui({ method: 'share', href: share.href, hashtag: (share.hashtag && share.hashtag.indexOf('#') >= 0) ? share.hashtag : null }, function (response) { console.log(response); resolve(); }); }); } /** * @return {?} */ signOut() { return new Promise((resolve, reject) => { FB.logout((response) => { resolve(); }); }); } } FacebookLoginProvider.PROVIDER_TYPE = 'facebook'; FacebookLoginProvider.SCOPES = { EMAIL: 'email', PUBLIC_PROFILE: 'public_profile' }; if (false) { /** @type {?} */ FacebookLoginProvider.PROVIDER_TYPE; /** @type {?} */ FacebookLoginProvider.SCOPES; /** @type {?} */ FacebookLoginProvider.prototype.TYPE; /** @type {?} */ FacebookLoginProvider.prototype.loginProviderObj; /** @type {?} */ FacebookLoginProvider.prototype.clientId; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZWJvb2tQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zb2NpYWwtYnV0dG9uLyIsInNvdXJjZXMiOlsibGliL3Byb3ZpZGVycy9mYWNlYm9va1Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEUsTUFBTSw0QkFBNkIsU0FBUSxxQkFBcUI7Ozs7SUFXOUQsWUFBb0IsUUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFRO29CQUh0QixVQUFVO2dDQUNzQixJQUFJLGtCQUFrQixFQUFFO1FBSXBFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsMkNBQTJDLENBQUM7S0FDekU7Ozs7SUFFRCxVQUFVO1FBQ1IsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDeEMsRUFBRSxDQUFDLElBQUksQ0FBQztvQkFDTixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3BCLGdCQUFnQixFQUFFLElBQUk7b0JBQ3RCLE1BQU0sRUFBRSxJQUFJO29CQUNaLEtBQUssRUFBRSxJQUFJO29CQUNYLE9BQU8sRUFBRSxNQUFNO2lCQUNoQixDQUFDLENBQUM7Z0JBQ0gsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFFM0IsRUFBRSxDQUFDLGNBQWMsQ0FB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UUFBUTtnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7U0FDUixDQUFDLENBQUM7S0FDTjs7OztJQUNELE9BQU87UUFDTCxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMxQixPQUFPLEVBQUUsQ0FBQzthQUNYLENBQUMsQ0FBQztTQUNKLENBQUMsQ0FBQztLQUNKOztzQ0FwRnNDLFVBQVU7K0JBQ2pCO0lBQzlCLEtBQUssRUFBRyxPQUFPO0lBQ2YsY0FBYyxFQUFFLGdCQUFnQjtDQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VMb2dpblByb3ZpZGVySW1wbCB9IGZyb20gJy4uL2VudGl0aWVzL2Jhc2VMb2dpblByb3ZpZGVySW1wbCc7XG5pbXBvcnQgeyBTb2NpYWxVc2VyLCBMb2dpblByb3ZpZGVyQ2xhc3MgfSBmcm9tICcuLi9lbnRpdGllcy91c2VyJztcblxuZGVjbGFyZSBsZXQgRkI6IGFueTtcblxuZXhwb3J0IGNsYXNzIEZhY2Vib29rTG9naW5Qcm92aWRlciBleHRlbmRzIEJhc2VMb2dpblByb3ZpZGVySW1wbCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9WSURFUl9UWVBFID0gJ2ZhY2Vib29rJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQ09QRVMgPSB7XG4gICAgRU1BSUwgOiAnZW1haWwnLFxuICAgIFBVQkxJQ19QUk9GSUxFOiAncHVibGljX3Byb2ZpbGUnXG4gIH07XG5cbiAgcHVibGljIFRZUEUgPSAnZmFjZWJvb2snO1xuICBwdWJsaWMgbG9naW5Qcm92aWRlck9iajogTG9naW5Qcm92aWRlckNsYXNzID0gbmV3IExvZ2luUHJvdmlkZXJDbGFzcygpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpZW50SWQ6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sb2dpblByb3ZpZGVyT2JqLmlkID0gY2xpZW50SWQ7XG4gICAgdGhpcy5sb2dpblByb3ZpZGVyT2JqLm5hbWUgPSAnZmFjZWJvb2snO1xuICAgIHRoaXMubG9naW5Qcm92aWRlck9iai51cmwgPSAnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9zZGsuanMnO1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPFNvY2lhbFVzZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5sb2FkU2NyaXB0KHRoaXMubG9naW5Qcm92aWRlck9iaiwgKCkgPT4ge1xuICAgICAgICAgIEZCLmluaXQoe1xuICAgICAgICAgICAgYXBwSWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICAgICAgICBhdXRvTG9nQXBwRXZlbnRzOiB0cnVlLFxuICAgICAgICAgICAgY29va2llOiB0cnVlLFxuICAgICAgICAgICAgeGZibWw6IHRydWUsXG4gICAgICAgICAgICB2ZXJzaW9uOiAndjIuOCdcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBGQi5BcHBFdmVudHMubG9nUGFnZVZpZXcoKTtcblxuICAgICAgICAgIEZCLmdldExvZ2luU3RhdHVzKGZ1bmN0aW9uIChyZXNwb25zZTogYW55KSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnY29ubmVjdGVkJykge1xuICAgICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IEZCLmdldEF1dGhSZXNwb25zZSgpWydhY2Nlc3NUb2tlbiddO1xuICAgICAgICAgICAgICBGQi5hcGkoJy9tZT9maWVsZHM9bmFtZSxlbWFpbCxwaWN0dXJlJywgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShGYWNlYm9va0xvZ2luUHJvdmlkZXIuZHJhd1VzZXIoT2JqZWN0LmFzc2lnbih7fSwge3Rva2VuOiBhY2Nlc3NUb2tlbn0sIHJlcykpKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGRyYXdVc2VyKHJlc3BvbnNlOiBhbnkpOiBTb2NpYWxVc2VyIHtcbiAgICBsZXQgdXNlcjogU29jaWFsVXNlciA9IG5ldyBTb2NpYWxVc2VyKCk7XG4gICAgdXNlci5pZCA9IHJlc3BvbnNlLmlkO1xuICAgIHVzZXIubmFtZSA9IHJlc3BvbnNlLm5hbWU7XG4gICAgdXNlci5lbWFpbCA9IHJlc3BvbnNlLmVtYWlsO1xuICAgIHVzZXIuYWNjZXNzVG9rZW4gPSByZXNwb25zZS5hY2Nlc3NUb2tlbjtcbiAgICB1c2VyLmltYWdlID0gJ2h0dHBzOi8vZ3JhcGguZmFjZWJvb2suY29tLycgKyByZXNwb25zZS5pZCArICcvcGljdHVyZT90eXBlPW5vcm1hbCc7XG4gICAgcmV0dXJuIHVzZXI7XG4gIH1cblxuXG4gIHNpZ25JbihzY29wZXM/OltzdHJpbmddKTogUHJvbWlzZTxTb2NpYWxVc2VyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIEZCLmxvZ2luKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmFjZWJvb2tcIiwgcmVzcG9uc2UpO1xuICAgICAgICBpZiAocmVzcG9uc2UuYXV0aFJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBGQi5nZXRBdXRoUmVzcG9uc2UoKVsnYWNjZXNzVG9rZW4nXTtcbiAgICAgICAgICBGQi5hcGkoJy9tZT9maWVsZHM9bmFtZSxlbWFpbCxwaWN0dXJlJywgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIm1lXCIsIHJlcyk7XG4gICAgICAgICAgICByZXNvbHZlKEZhY2Vib29rTG9naW5Qcm92aWRlci5kcmF3VXNlcihPYmplY3QuYXNzaWduKHt9LCB7YWNjZXNzVG9rZW46IGFjY2Vzc1Rva2VufSwgcmVzKSkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCB7IHNjb3BlOiBzY29wZXMgJiYgc2NvcGVzLmxlbmd0aCA+IDAgPyBzY29wZXMuam9pbignLCcpIDogJ2VtYWlsLHB1YmxpY19wcm9maWxlJyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNoYXJpbmcoc2hhcmU/OmFueSk6IFByb21pc2U8YW55PntcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBGQi51aSh7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnc2hhcmUnLFxuICAgICAgICAgICAgICAgIGhyZWY6IHNoYXJlLmhyZWYsXG4gICAgICAgICAgICAgICAgaGFzaHRhZzogKHNoYXJlLmhhc2h0YWcgJiYgc2hhcmUuaGFzaHRhZy5pbmRleE9mKCcjJyk+PTApP3NoYXJlLmhhc2h0YWcgOiAgbnVsbFxuICAgICAgICAgICAgfSwgZnVuY3Rpb24ocmVzcG9uc2Upe1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbiAgc2lnbk91dCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBGQi5sb2dvdXQoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxufSJdfQ==