UNPKG

ngx-social-button

Version:

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

145 lines (144 loc) 13.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { BaseLoginProviderImpl } from '../entities/baseLoginProviderImpl'; import { SocialUser, LoginProviderClass } from '../entities/user'; var FacebookLoginProvider = /** @class */ (function (_super) { tslib_1.__extends(FacebookLoginProvider, _super); function FacebookLoginProvider(clientId) { var _this = _super.call(this) || this; _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 _this; } /** * @return {?} */ FacebookLoginProvider.prototype.initialize = /** * @return {?} */ function () { var _this = this; return new Promise(function (resolve, reject) { _this.loadScript(_this.loginProviderObj, function () { 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 {?} */ var accessToken_1 = FB.getAuthResponse()['accessToken']; FB.api('/me?fields=name,email,picture', function (res) { resolve(FacebookLoginProvider.drawUser(Object.assign({}, { token: accessToken_1 }, res))); }); } }); }); }); }; /** * @param {?} response * @return {?} */ FacebookLoginProvider.drawUser = /** * @param {?} response * @return {?} */ function (response) { /** @type {?} */ var 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 {?} */ FacebookLoginProvider.prototype.signIn = /** * @param {?=} scopes * @return {?} */ function (scopes) { return new Promise(function (resolve, reject) { FB.login(function (response) { console.log("facebook", response); if (response.authResponse) { /** @type {?} */ var accessToken_2 = FB.getAuthResponse()['accessToken']; FB.api('/me?fields=name,email,picture', function (res) { console.log("me", res); resolve(FacebookLoginProvider.drawUser(Object.assign({}, { accessToken: accessToken_2 }, res))); }); } }, { scope: scopes && scopes.length > 0 ? scopes.join(',') : 'email,public_profile' }); }); }; /** * @param {?=} share * @return {?} */ FacebookLoginProvider.prototype.sharing = /** * @param {?=} share * @return {?} */ function (share) { return new Promise(function (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 {?} */ FacebookLoginProvider.prototype.signOut = /** * @return {?} */ function () { return new Promise(function (resolve, reject) { FB.logout(function (response) { resolve(); }); }); }; FacebookLoginProvider.PROVIDER_TYPE = 'facebook'; FacebookLoginProvider.SCOPES = { EMAIL: 'email', PUBLIC_PROFILE: 'public_profile' }; return FacebookLoginProvider; }(BaseLoginProviderImpl)); export { FacebookLoginProvider }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZWJvb2tQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zb2NpYWwtYnV0dG9uLyIsInNvdXJjZXMiOlsibGliL3Byb3ZpZGVycy9mYWNlYm9va1Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztJQUl2QixpREFBcUI7SUFXOUQsK0JBQW9CLFFBQWdCO1FBQXBDLFlBQ0UsaUJBQU8sU0FJUjtRQUxtQixjQUFRLEdBQVIsUUFBUSxDQUFRO3FCQUh0QixVQUFVO2lDQUNzQixJQUFJLGtCQUFrQixFQUFFO1FBSXBFLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3hDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsMkNBQTJDLENBQUM7O0tBQ3pFOzs7O0lBRUQsMENBQVU7OztJQUFWO1FBQUEsaUJBc0JDO1FBckJDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQ2pDLEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNuQyxFQUFFLENBQUMsSUFBSSxDQUFDO29CQUNOLEtBQUssRUFBRSxLQUFJLENBQUMsUUFBUTtvQkFDcEIsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDdEIsTUFBTSxFQUFFLElBQUk7b0JBQ1osS0FBSyxFQUFFLElBQUk7b0JBQ1gsT0FBTyxFQUFFLE1BQU07aUJBQ2hCLENBQUMsQ0FBQztnQkFDSCxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUUzQixFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsUUFBYTtv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QztnQkFDdEIsT0FBTyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7U0FDUixDQUFDLENBQUM7S0FDTjs7OztJQUNELHVDQUFPOzs7SUFBUDtRQUNFLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQ2pDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBQyxRQUFhO2dCQUN0QixPQUFPLEVBQUUsQ0FBQzthQUNYLENBQUMsQ0FBQztTQUNKLENBQUMsQ0FBQztLQUNKOzBDQXBGc0MsVUFBVTttQ0FDakI7UUFDOUIsS0FBSyxFQUFHLE9BQU87UUFDZixjQUFjLEVBQUUsZ0JBQWdCO0tBQ2pDO2dDQVhIO0VBSzJDLHFCQUFxQjtTQUFuRCxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTG9naW5Qcm92aWRlckltcGwgfSBmcm9tICcuLi9lbnRpdGllcy9iYXNlTG9naW5Qcm92aWRlckltcGwnO1xuaW1wb3J0IHsgU29jaWFsVXNlciwgTG9naW5Qcm92aWRlckNsYXNzIH0gZnJvbSAnLi4vZW50aXRpZXMvdXNlcic7XG5cbmRlY2xhcmUgbGV0IEZCOiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBGYWNlYm9va0xvZ2luUHJvdmlkZXIgZXh0ZW5kcyBCYXNlTG9naW5Qcm92aWRlckltcGwge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPVklERVJfVFlQRSA9ICdmYWNlYm9vayc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0NPUEVTID0ge1xuICAgIEVNQUlMIDogJ2VtYWlsJyxcbiAgICBQVUJMSUNfUFJPRklMRTogJ3B1YmxpY19wcm9maWxlJ1xuICB9O1xuXG4gIHB1YmxpYyBUWVBFID0gJ2ZhY2Vib29rJztcbiAgcHVibGljIGxvZ2luUHJvdmlkZXJPYmo6IExvZ2luUHJvdmlkZXJDbGFzcyA9IG5ldyBMb2dpblByb3ZpZGVyQ2xhc3MoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudElkOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9naW5Qcm92aWRlck9iai5pZCA9IGNsaWVudElkO1xuICAgIHRoaXMubG9naW5Qcm92aWRlck9iai5uYW1lID0gJ2ZhY2Vib29rJztcbiAgICB0aGlzLmxvZ2luUHJvdmlkZXJPYmoudXJsID0gJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvc2RrLmpzJztcbiAgfVxuXG4gIGluaXRpYWxpemUoKTogUHJvbWlzZTxTb2NpYWxVc2VyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMubG9hZFNjcmlwdCh0aGlzLmxvZ2luUHJvdmlkZXJPYmosICgpID0+IHtcbiAgICAgICAgICBGQi5pbml0KHtcbiAgICAgICAgICAgIGFwcElkOiB0aGlzLmNsaWVudElkLFxuICAgICAgICAgICAgYXV0b0xvZ0FwcEV2ZW50czogdHJ1ZSxcbiAgICAgICAgICAgIGNvb2tpZTogdHJ1ZSxcbiAgICAgICAgICAgIHhmYm1sOiB0cnVlLFxuICAgICAgICAgICAgdmVyc2lvbjogJ3YyLjgnXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgRkIuQXBwRXZlbnRzLmxvZ1BhZ2VWaWV3KCk7XG5cbiAgICAgICAgICBGQi5nZXRMb2dpblN0YXR1cyhmdW5jdGlvbiAocmVzcG9uc2U6IGFueSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gJ2Nvbm5lY3RlZCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBGQi5nZXRBdXRoUmVzcG9uc2UoKVsnYWNjZXNzVG9rZW4nXTtcbiAgICAgICAgICAgICAgRkIuYXBpKCcvbWU/ZmllbGRzPW5hbWUsZW1haWwscGljdHVyZScsIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoRmFjZWJvb2tMb2dpblByb3ZpZGVyLmRyYXdVc2VyKE9iamVjdC5hc3NpZ24oe30sIHt0b2tlbjogYWNjZXNzVG9rZW59LCByZXMpKSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkcmF3VXNlcihyZXNwb25zZTogYW55KTogU29jaWFsVXNlciB7XG4gICAgbGV0IHVzZXI6IFNvY2lhbFVzZXIgPSBuZXcgU29jaWFsVXNlcigpO1xuICAgIHVzZXIuaWQgPSByZXNwb25zZS5pZDtcbiAgICB1c2VyLm5hbWUgPSByZXNwb25zZS5uYW1lO1xuICAgIHVzZXIuZW1haWwgPSByZXNwb25zZS5lbWFpbDtcbiAgICB1c2VyLmFjY2Vzc1Rva2VuID0gcmVzcG9uc2UuYWNjZXNzVG9rZW47XG4gICAgdXNlci5pbWFnZSA9ICdodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS8nICsgcmVzcG9uc2UuaWQgKyAnL3BpY3R1cmU/dHlwZT1ub3JtYWwnO1xuICAgIHJldHVybiB1c2VyO1xuICB9XG5cblxuICBzaWduSW4oc2NvcGVzPzpbc3RyaW5nXSk6IFByb21pc2U8U29jaWFsVXNlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBGQi5sb2dpbigocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcImZhY2Vib29rXCIsIHJlc3BvbnNlKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmF1dGhSZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gRkIuZ2V0QXV0aFJlc3BvbnNlKClbJ2FjY2Vzc1Rva2VuJ107XG4gICAgICAgICAgRkIuYXBpKCcvbWU/ZmllbGRzPW5hbWUsZW1haWwscGljdHVyZScsIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJtZVwiLCByZXMpO1xuICAgICAgICAgICAgcmVzb2x2ZShGYWNlYm9va0xvZ2luUHJvdmlkZXIuZHJhd1VzZXIoT2JqZWN0LmFzc2lnbih7fSwge2FjY2Vzc1Rva2VuOiBhY2Nlc3NUb2tlbn0sIHJlcykpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgeyBzY29wZTogc2NvcGVzICYmIHNjb3Blcy5sZW5ndGggPiAwID8gc2NvcGVzLmpvaW4oJywnKSA6ICdlbWFpbCxwdWJsaWNfcHJvZmlsZScgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzaGFyaW5nKHNoYXJlPzphbnkpOiBQcm9taXNlPGFueT57XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgRkIudWkoe1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ3NoYXJlJyxcbiAgICAgICAgICAgICAgICBocmVmOiBzaGFyZS5ocmVmLFxuICAgICAgICAgICAgICAgIGhhc2h0YWc6IChzaGFyZS5oYXNodGFnICYmIHNoYXJlLmhhc2h0YWcuaW5kZXhPZignIycpPj0wKT9zaGFyZS5oYXNodGFnIDogIG51bGxcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJlc3BvbnNlKXtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG4gIHNpZ25PdXQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgRkIubG9nb3V0KChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbn0iXX0=