From a55af6faa6ad028bf1ef32b962354f0cc6def8e1 Mon Sep 17 00:00:00 2001 From: nekoromancer Date: Fri, 20 Jun 2014 11:03:13 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4(=20.api.me()=20)=EB=A5=BC=20=EA=B0=80=EC=A0=B8?= =?UTF-8?q?=EC=98=AC=20=EB=95=8C=20=EB=A1=9C=EC=BB=AC=20=EC=96=B8=EC=96=B4?= =?UTF-8?q?=EA=B0=80=20=EB=B0=98=EC=98=81=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EC=9D=B4=EC=8A=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original line 624 : FB.api('me', function( $response ) { Modify line 624 : FB.api('me?locale=' + _lang, function( $resposne ) { --- src/EZFB.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/EZFB.js b/src/EZFB.js index 2c055ce..861d226 100644 --- a/src/EZFB.js +++ b/src/EZFB.js @@ -621,7 +621,7 @@ if (!Array.prototype.indexOf) { if( $listener ) { event.on( 'me', $listener ); } - FB.api( '/me', function( $response ) { + FB.api( '/me?locale=' + _lang, function( $response ) { if( $response.error ) { app.user = null; } @@ -837,4 +837,4 @@ if (!Array.prototype.indexOf) { app.logout = function( $listener ) { return api.logout( $listener ); }; -} )( window, document ); \ No newline at end of file +} )( window, document ); From e5b496644bc91d142f48572b27214dca6679c76e Mon Sep 17 00:00:00 2001 From: nekoromancer Date: Tue, 22 Jul 2014 15:45:07 +0900 Subject: [PATCH 2/4] Update EZFB.js --- src/EZFB.js | 1678 ++++++++++++++++++++++++++------------------------- 1 file changed, 853 insertions(+), 825 deletions(-) diff --git a/src/EZFB.js b/src/EZFB.js index 861d226..8ecf47e 100644 --- a/src/EZFB.js +++ b/src/EZFB.js @@ -10,831 +10,859 @@ * * Date: 2014-05-29 14:39 */ -;'use strict'; + + /*! + * EZFB v0.0.6-b + * + * Date: 2014-07-22 + */ + +'use strict'; + if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function( searchElement, fromIndex ) { - var i, - pivot = (fromIndex) ? fromIndex : 0, - length; - - if( !this ) { - throw new TypeError(); - } - - length = this.length; - - if( length === 0 || pivot >= length ) { - return -1; - } - - if( pivot < 0 ) { - pivot = length - Math.abs(pivot); - } - - for( i = pivot; i < length; i++ ) { - if( this[ i ] === searchElement ) { - return i; - } - } - return -1; - }; + Array.prototype.indexOf = function( searchElement, fromIndex ) { + var i, + pivot = (fromIndex) ? fromIndex : 0, + length; + + if( !this ) { + throw new TypeError(); + } + + length = this.length; + + if( length === 0 || pivot >= length ) { + return -1; + } + + if( pivot < 0 ) { + pivot = length - Math.abs(pivot); + } + + for( i = pivot; i < length; i++ ) { + if( this[ i ] === searchElement ) { + return i; + } + } + return -1; + }; } -( function( $window, $document ) { - /* ==================================================================================================== - - Variables - - ==================================================================================================== */ - - var app; - var api; - var event; - var window = $window; - var document = $document; - - var _isInit = false; - var _hasLoginStatusCallback = false; - var _lang = 'en_US'; - var _appId; - var _opts; - var _loginStatus = 'not_ready'; - var _userId; - var _accessToken; - var _eventList = []; - - /* ==================================================================================================== - - Private Functions - - ==================================================================================================== */ - - function _each( $list, $iterator ) { - for( var i = 0, len = $list.length; i < len; i++ ) { - $iterator.call( null, $list[ i ], i, $list ); - } - } - - function _checkLanguage() { - var lang = navigator.language || navigator.browserLanguage; - lang = lang.toLowerCase(); - - switch( lang ) { - case 'af' : - case 'af_za' : - _lang = 'af_ZA'; - break; - case 'ar' : - case 'ar_ar' : - _lang = 'ar_AR'; - break; - case 'az' : - case 'az_az' : - _lang = 'az_AZ'; - break; - case 'be' : - case 'be_by' : - _lang = 'be_BY'; - break; - case 'bg' : - case 'bg_bg' : - _lang = 'bg_BG'; - break; - case 'bn' : - case 'bn_in' : - _lang = 'bn_IN'; - break; - case 'bs' : - case 'bs_ba' : - _lang = 'bs_BA'; - break; - case 'ca' : - case 'ca_es' : - _lang = 'ca_ES'; - break; - case 'cs' : - case 'cs_cz' : - _lang = 'cs_CZ'; - break; - case 'cy' : - case 'cy_gb' : - _lang = 'cy_GB'; - break; - case 'da' : - case 'da_dk' : - _lang = 'da_DK'; - break; - case 'de' : - case 'de_de' : - _lang = 'de_DE'; - break; - case 'el' : - case 'el_gr' : - _lang = 'el_GR'; - break; - case 'en_gb' : - _lang = 'en_GB'; - break; - case 'en_pi' : - _lang = 'en_PI'; - break; - case 'en_ud' : - _lang = 'en_UD'; - break; - case 'eo' : - case 'eo_eo' : - _lang = 'eo_EO'; - break; - case 'es' : - case 'es_es' : - _lang = 'es_ES'; - break; - case 'es_la' : - _lang = 'es_LA'; - break; - case 'et' : - case 'et_ee' : - _lang = 'et_EE'; - break; - case 'eu' : - case 'eu_es' : - _lang = 'eu_ES'; - break; - case 'fa' : - case 'fa_ir' : - _lang = 'fa_IR'; - break; - case 'fb' : - case 'fb_lt' : - _lang = 'fb_LT'; - break; - case 'fi' : - case 'fi_fi' : - _lang = 'fi_FI'; - break; - case 'fo' : - case 'fo_fo' : - _lang = 'fo_FO'; - break; - case 'fr_ca' : - _lang = 'fr_CA'; - break; - case 'fr' : - case 'fr_fr' : - _lang = 'fr_FR'; - break; - case 'fy' : - case 'fy_nl' : - _lang = 'fy_NL'; - break; - case 'ga' : - case 'ga_ie' : - _lang = 'ga_IE'; - break; - case 'gl' : - case 'gl_es' : - _lang = 'gl_ES'; - break; - case 'he' : - case 'he_il' : - _lang = 'he_IL'; - break; - case 'hi' : - case 'hi_in' : - _lang = 'hi_IN'; - break; - case 'hr' : - case 'hr_hr' : - _lang = 'hr_HR'; - break; - case 'hu' : - case 'hu_hu' : - _lang = 'hu_HU'; - break; - case 'hy' : - case 'hy_am' : - _lang = 'hy_AM'; - break; - case 'id' : - case 'id_id' : - _lang = 'id_ID'; - break; - case 'is' : - case 'is_is' : - _lang = 'is_IS'; - break; - case 'it' : - case 'it_it' : - _lang = 'it_IT'; - break; - case 'ja' : - case 'ja_jp' : - _lang = 'ja_JP'; - break; - case 'ka' : - case 'ka_ge' : - _lang = 'ka_GE'; - break; - case 'km' : - case 'km_kh' : - _lang = 'km_KH'; - break; - case 'ko' : - case 'ko_kr' : - _lang = 'ko_KR'; - break; - case 'ku' : - case 'ku_tr' : - _lang = 'ku_TR'; - break; - case 'la' : - case 'la_va' : - _lang = 'la_VA'; - break; - case 'lt' : - case 'lt_lt' : - _lang = 'lt_LT'; - break; - case 'lv' : - case 'lv_lv' : - _lang = 'lv_LV'; - break; - case 'mk' : - case 'mk_mk' : - _lang = 'mk_MK'; - break; - case 'ml' : - case 'ml_in' : - _lang = 'ml_IN'; - break; - case 'ms' : - case 'ms_my' : - _lang = 'ms_MY'; - break; - case 'nb' : - case 'nb_no' : - _lang = 'nb_NO'; - break; - case 'ne' : - case 'ne_np' : - _lang = 'ne_NP'; - break; - case 'nl' : - case 'nl_nl' : - _lang = 'nl_NL'; - break; - case 'nn' : - case 'nn_no' : - _lang = 'nn_NO'; - break; - case 'pa' : - case 'pa_in' : - _lang = 'pa_IN'; - break; - case 'pl' : - case 'pl_pl' : - _lang = 'pl_PL'; - break; - case 'ps' : - case 'ps_af' : - _lang = 'ps_AF'; - break; - case 'pt' : - case 'pt_pt' : - _lang = 'pt_PT'; - break; - case 'pt_br' : - _lang = 'pt_BR'; - break; - case 'ro' : - case 'ro_ro' : - _lang = 'ro_RO'; - break; - case 'ru' : - case 'ru_ru' : - _lang = 'ru_RU'; - break; - case 'sk' : - case 'sk_sk' : - _lang = 'sk_SK'; - break; - case 'sl' : - case 'sl_si' : - _lang = 'sl_SI'; - break; - case 'sq' : - case 'sq_al' : - _lang = 'sq_AL'; - break; - case 'sr' : - case 'sr_rs' : - _lang = 'sr_RS'; - break; - case 'sv' : - case 'sv_se' : - _lang = 'sv_SE'; - break; - case 'sw' : - case 'sw_ke' : - _lang = 'sw_KE'; - break; - case 'ta' : - case 'ta_in' : - _lang = 'ta_IN'; - break; - case 'te' : - case 'te_in' : - _lang = 'te_IN'; - break; - case 'th' : - case 'th_th' : - _lang = 'th_TH'; - break; - case 'tl' : - case 'tl_ph' : - _lang = 'tl_PH'; - break; - case 'tr' : - case 'tr_tr' : - _lang = 'tr_TR'; - break; - case 'uk' : - case 'uk_ua' : - _lang = 'uk_UA'; - break; - case 'vi' : - case 'vi_vn' : - _lang = 'vi_VN'; - break; - case 'zh' : - case 'zh_cn' : - _lang = 'zh_CN'; - break; - case 'zh_hk' : - _lang = 'zh_HK'; - break; - case 'zh_tw' : - _lang = 'zh_TW'; - break; - default : - _lang = 'en_US'; - } - } - - function _createFBML( $event ) { - if ( document.addEventListener || $event.type === 'load' || document.readyState === 'complete' ) { - _removeEvents(); - - var head = document.getElementsByTagName( 'head' )[ 0 ]; - var script = document.createElement( 'script' ); - script.text = '(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/' + _lang + '/all.js"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));'; - if( head.firstChild ) { - head.insertBefore( script, head.firstChild ); - } - else { - head.appendChild( script ); - } - - if( !document.getElementById( 'fb-root' ) ) { - var root = document.createElement( 'div' ); - root.setAttribute( 'id', 'fb-root' ); - if( document.body.firstChild ) { - document.body.insertBefore( root, document.body.firstChild ); - } - else { - document.body.appendChild( root ); - } - } - - if( window.fbAsyncInit ) { - _isInit = true; - } - else { - window.fbAsyncInit = function() { - _isInit = true; - - _applyListeners( 'init' ); - } - } - - app.init( function() { - FB.Event.subscribe( 'edge.create', _subscribeHandler ); - FB.Event.subscribe( 'edge.remove', _unsubscribeHandler ); - } ); - } - } - - function _applyListeners( $eventName ) { - if( _eventList[ $eventName ] === undefined ) { - return false; - } - var list = _eventList[ $eventName ]; - var len = list.length; - var $params; - if( arguments[ 1 ] ) { - $params = [ arguments[ 1 ] ]; - } - else { - $params = []; - } - _each( list, function( $item ) { - $item.apply( null, $params ); - } ); - }; - - function _addListener( $eventName, $handler ) { - if( _eventList[ $eventName ] === undefined ) { - _eventList[ $eventName ] = []; - } - var list = _eventList[ $eventName ]; - if( list.indexOf( $handler ) < 0 ) { - for( var i = 0, len = list.length; i < len; i++ ) { - if( list[ i ].toString() == $handler.toString() ) { - return; - } - } - list.push( $handler ); - } - }; - - function _removeListener( $eventName, $handler ) { - if( _eventList[ $eventName ] === undefined ) { - return false; - } - - var list = _eventList[ $eventName ]; - var len = list.length; - for( var i = 0; i < len; i++ ) { - if( list[ i ] === $handler ) { - list.splice( i, 1 ); - return true; - } - } - return false; - }; - - function _addEvents() { - if ( document.addEventListener ) { - document.addEventListener( 'DOMContentLoaded', _createFBML ); - } else { - document.attachEvent( 'onreadystatechange', _createFBML ); - } - }; - - function _removeEvents() { - if ( document.addEventListener ) { - document.removeEventListener( 'DOMContentLoaded', _createFBML ); - } else { - document.detachEvent( 'onreadystatechange', _createFBML ); - } - }; - - function _subscribeHandler( $response ) { - _applyListeners( 'like', [ $response ] ); - }; - - function _unsubscribeHandler( $response ) { - _applyListeners( 'unlike', [ $response ] ); - }; - - function _getLoginStatusHandler( $response ) { - if( $response.status === 'connected' ) { - _loginStatus = 'connected'; - _userId = $response.authResponse.userID; - _accessToken = $response.authResponse.accessToken; - app.user = null; - app.api.me( _meHandler ); - } else if ( $response.status === 'not_authorized' ) { - _loginStatus = 'not_authorized'; - _userId = null; - _accessToken = null; - app.user = null; - } else { - _loginStatus = 'no_login'; - _userId = null; - _accessToken = null; - app.user = null; - } - - _applyListeners( 'loginStatus', [ $response ] ); - }; - - function _meHandler( $response ) { - app.user = $response; - }; - - /* ==================================================================================================== - - Constructor - - ==================================================================================================== */ - - app = window.EZFB = ( { - initialize: function() { - if( !app ) { - _checkLanguage(); - if( document.body ) { - _createFBML(); - } - else { - _addEvents(); - } - return this; - } - else { - console.log( 'EZFB is already initialized.' ); - } - } - } ).initialize(); - - /* ==================================================================================================== - - Public Properties - - ==================================================================================================== */ - - app.user = null; - - /* ==================================================================================================== - - Public Functions - - ==================================================================================================== */ - - app.appInit = function( $appIdOrOptions /*, $cookie, $logging, $status, $xfbml, $channelUrl, $authResponse, $frictionlessRequests, $hideFlashCallback */ ) { - if( typeof $appIdOrOptions == 'object' ) { - _opts = $appIdOrOptions; - _appId = _opts[ 'appId' ]; - } - else { - var $cookie = arguments[ 1 ] ? arguments[ 1 ] : false; - var $logging = arguments[ 2 ] ? arguments[ 2 ] : true; - var $status = arguments[ 3 ] ? arguments[ 3 ] : true; - var $xfbml = arguments[ 4 ] ? arguments[ 4 ] : false; - var $channelUrl = arguments[ 5 ] ? arguments[ 5 ] : null; - var $authResponse = arguments[ 6 ] ? arguments[ 6 ] : true; - var $frictionlessRequests = arguments[ 7 ] ? arguments[ 7 ] : false; - var $hideFlashCallback = arguments[ 8 ] ? arguments[ 8 ] : null; - - _opts = { - appId : $appIdOrOptions, - cookie : $cookie, - logging : $logging, - status : $status, - xfbml : $xfbml, - channelUrl : $channelUrl, - authResponse : $authResponse, - frictionlessRequests : $frictionlessRequests, - hideFlashCallback : $hideFlashCallback - }; - - _appId = $appIdOrOptions; - }; - - if( _isInit ) { - FB.init( _opts ); - } - else { - this.init( function() { - FB.init( _opts ); - } ); - }; - this.init( this.update ); - this.init( this.callLoginStatus ); - - return this; - }; - - api = app.api = { - loginStatus: function( $listener ) { - if( $listener ) { - event.on( 'loginStatus', $listener ); - } - - if( !_hasLoginStatusCallback ) { - _hasLoginStatusCallback = true; - FB.getLoginStatus( _getLoginStatusHandler ); - } - return app; - }, - me: function( $listener ) { - if( $listener ) { - event.on( 'me', $listener ); - } - FB.api( '/me?locale=' + _lang, function( $response ) { - if( $response.error ) { - app.user = null; - } - else { - app.user = $response; - } - _applyListeners( 'me', $response ); - } ); - return app; - }, - deauth: function( $permission, $listener ) { - if( $permission === undefined ) { - $permission = ''; - } - var arr = $permission.split( ' ' ); - var len = arr.length; - var done = 0; - if( $listener ) { - event.on( 'deauth', $listener ); - } - - _each( arr, function( $item ) { - FB.api( '/me/permissions/' + $item, 'DELETE', function( $response ) { - done++; - if( done == len ) { - _applyListeners( 'deauth' ); - api.loginStatus(); - } - } ); - } ); - }, - login: function( $scope, $listenerOrRedirectUrl ) { - var type = typeof $listenerOrRedirectUrl; - if( type == 'string' ) { - var url = 'https://www.facebook.com/dialog/oauth?client_id=%a&redirect_uri=%u&scope=%s'; - url = url.replace( '%a', _appId ); - url = url.replace( '%u', $listenerOrRedirectUrl ); - url = url.replace( '%s', $scope ); - - window.top.location.href = url; - return this; - } - - if( type == 'function' ) { - event.on( 'login', $listenerOrRedirectUrl ); - } - FB.login( function( $response ) { - _applyListeners( 'login', $response ); - api.loginStatus(); - }, { scope: $scope } ); - return app; - }, - logout: function( $listener ) { - if( $listener ) { - event.on( 'logout', $listener ); - } - FB.logout( function( $response ) { - _applyListeners( 'logout', $response ); - api.loginStatus(); - } ); - return app; - } - }; - - event = app.event = { - on: function( $eventName, $listener ) { - var $events = $eventName.split( ' ' ); - _each( $events, function( $event ) { - console.log( 'on: ' + $event ); - _addListener( $event, $listener ); - } ); - return this; - }, - bind: function( $eventName, $listener ) { - return this.on( $eventName, $listener ); - }, - off: function( $eventName, $listener ) { - var $events = $eventName.split( ' ' ); - _each( $events, function( $event ) { - _removeListener( $event, $listener ); - } ); - return this; - }, - unbind: function( $eventName, $listener ) { - return this.off( $eventName, $listener ); - }, - init: function( $listener ) { - if( _isInit ) { - $listener.apply( null ); - } - else { - event.on( 'init', $listener ); - } - return app; - }, - removeInit: function( $listener ) { - event.unbind( 'init', $listener ); - return app; - }, - like: function( $listener ) { - event.on( 'like', $listener ); - return app; - }, - removeLike: function( $listener ) { - event.unbind( 'like', $listener ); - return app; - }, - unlike: function( $listener ) { - event.on( 'unlike', $listener ); - return app; - }, - removeUnlike: function( $listener ) { - event.unbind( 'unlike', $listener ); - return app; - }, - loginStatus: function( $listener ) { - event.on( 'loginStatus', $listener ); - return app; - }, - removeLoginStatus: function( $listener ) { - event.unbind( 'loginStatus', $listener ); - return app; - }, - me: function( $listener ) { - event.on( 'me', $listener ); - return app; - }, - removeMe: function( $listener ) { - event.unbind( 'me', $listener ); - return app; - }, - login: function( $listener ) { - event.on( 'login', $listener ); - return app; - }, - removeLogin: function( $listener ) { - event.unbind( 'login', $listener ); - return app; - }, - logout: function( $listener ) { - event.on( 'logout', $listener ); - return app; - }, - removeLogout: function( $listener ) { - event.unbind( 'logout', $listener ); - return app; - }, - deauth: function( $listener ) { - event.on( 'deauth', $listener ); - return app; - }, - removeDeauth: function( $listener ) { - event.unbind( 'deauth', $listener ); - return app; - } - }; - - app.on = app.bind = function( $eventName, $listener ) { - return event.on( $eventName, $listener ); - }; - app.off = app.unbind = function( $eventName, $listener ) { - return event.off( $eventName, $listener ); - }; - app.init = function( $listener ) { - return event.init( $listener ); - }; - app.removeInit = function( $listener ) { - return event.removeInit( $listener ); - }; - app.like = function( $listener ) { - return event.like( $listener ); - }; - app.removeLike = function( $listener ) { - return event.removeLike( $listener ); - }; - app.unlike = function( $listener ) { - return event.unlike( $listener ); - }; - app.removeUnlike = function( $listener ) { - return event.removeUnlike( $listener ); - }; - app.loginStatus = function( $listener ) { - return event.loginStatus( $listener ); - }; - app.removeLoginStatus = function( $listener ) { - return event.removeLoginStatus( $listener ); - }; - - app.update = function() { - FB.XFBML.parse(); - return this; - }; - app.canvasAutosize = function() { - FB.Canvas.setSize(); - FB.Canvas.setAutoGrow(); - return this; - }; - app.callLoginStatus = function() { - return api.loginStatus(); - }; - app.getLoginStatus = function() { - return _loginStatus; - }; - app.getUserId = function() { - return _userId; - }; - app.getAccessToken = function() { - return _accessToken; - }; - app.login = function( $scope, $listenerOrRedirectUrl ) { - return api.login( $scope, $listenerOrRedirectUrl ); - }; - app.logout = function( $listener ) { - return api.logout( $listener ); - }; -} )( window, document ); +(function() { + var root = this; + var EZFB = {}; + + if( typeof exports !== 'undefined' ) { + if( typeof module !== 'undefined' && module.exports ) { + exports = module.exports = EZFB; + } + exports.EZFB = EZFB; + } else { + root.EZFB = EZFB; + } + + /* ==================================================================================================== + + Variables + + ==================================================================================================== */ + var api; + var event; + var user; + + var _isInit = false; + var _hasLoginStatusCallback = false; + var _lang = 'en_US'; + var _appId; + var _opts; + var _loginStatus = 'not_ready'; + var _userId; + var _accessToken; + var _eventList = []; + + /* ==================================================================================================== + + Public Properties + + ==================================================================================================== */ + + EZFB.user = function( $value ) { + if( $value ) { + user = $value; + } else { + return user; + } + } + + /* ==================================================================================================== + + Public Functions + + ==================================================================================================== */ + + EZFB.appInit = function( $appIdOrOptions /*, $cookie, $logging, $status, $xfbml, $channelUrl, $authResponse, $frictionlessRequests, $hideFlashCallback */ ) { + if( typeof $appIdOrOptions == 'object' ) { + _opts = $appIdOrOptions; + _appId = _opts[ 'appId' ]; + } + else { + var $cookie = arguments[ 1 ] ? arguments[ 1 ] : false; + var $logging = arguments[ 2 ] ? arguments[ 2 ] : true; + var $status = arguments[ 3 ] ? arguments[ 3 ] : true; + var $xfbml = arguments[ 4 ] ? arguments[ 4 ] : false; + var $channelUrl = arguments[ 5 ] ? arguments[ 5 ] : null; + var $authResponse = arguments[ 6 ] ? arguments[ 6 ] : true; + var $frictionlessRequests = arguments[ 7 ] ? arguments[ 7 ] : false; + var $hideFlashCallback = arguments[ 8 ] ? arguments[ 8 ] : null; + + _opts = { + appId : $appIdOrOptions, + cookie : $cookie, + logging : $logging, + status : $status, + xfbml : $xfbml, + channelUrl : $channelUrl, + authResponse : $authResponse, + frictionlessRequests : $frictionlessRequests, + hideFlashCallback : $hideFlashCallback + }; + + _appId = $appIdOrOptions; + }; + + if( _isInit ) { + FB.init( _opts ); + } + else { + this.init( function() { + FB.init( _opts ); + } ); + }; + this.init( this.update ); + this.init( this.callLoginStatus ); + + return this; + }; + + api = EZFB.api = { + loginStatus: function( $listener ) { + if( $listener ) { + event.on( 'loginStatus', $listener ); + } + + if( !_hasLoginStatusCallback ) { + _hasLoginStatusCallback = true; + FB.getLoginStatus( _getLoginStatusHandler ); + } + return EZFB; + }, + me: function( $listener ) { + if( $listener ) { + event.on( 'me', $listener ); + } + FB.api( '/me', function( $response ) { + if( $response.error ) { + EZFB.user( null ); + } + else { + EZFB.user( $response ); + } + _applyListeners( 'me', $response ); + } ); + return EZFB; + }, + deauth: function( $permission, $listener ) { + if( $permission === undefined ) { + $permission = ''; + } + var arr = $permission.split( ' ' ); + var len = arr.length; + var done = 0; + if( $listener ) { + event.on( 'deauth', $listener ); + } + + _each( arr, function( $item ) { + FB.api( '/me/permissions/' + $item, 'DELETE', function( $response ) { + done++; + if( done == len ) { + _applyListeners( 'deauth' ); + api.loginStatus(); + } + } ); + } ); + }, + login: function( $scope, $listenerOrRedirectUrl ) { + var type = typeof $listenerOrRedirectUrl; + if( type == 'string' ) { + var url = 'https://www.facebook.com/dialog/oauth?client_id=%a&redirect_uri=%u&scope=%s'; + url = url.replace( '%a', _appId ); + url = url.replace( '%u', $listenerOrRedirectUrl ); + url = url.replace( '%s', $scope ); + + window.top.location.href = url; + return this; + } + + if( type == 'function' ) { + event.on( 'login', $listenerOrRedirectUrl ); + } + FB.login( function( $response ) { + _applyListeners( 'login', $response ); + api.loginStatus(); + }, { scope: $scope } ); + return EZFB; + }, + logout: function( $listener ) { + if( $listener ) { + event.on( 'logout', $listener ); + } + FB.logout( function( $response ) { + _applyListeners( 'logout', $response ); + api.loginStatus(); + } ); + return EZFB; + } + }; + + event = EZFB.event = { + on: function( $eventName, $listener ) { + var $events = $eventName.split( ' ' ); + _each( $events, function( $event ) { + console.log( 'on: ' + $event ); + _addListener( $event, $listener ); + } ); + return this; + }, + bind: function( $eventName, $listener ) { + return this.on( $eventName, $listener ); + }, + off: function( $eventName, $listener ) { + var $events = $eventName.split( ' ' ); + _each( $events, function( $event ) { + _removeListener( $event, $listener ); + } ); + return this; + }, + unbind: function( $eventName, $listener ) { + return this.off( $eventName, $listener ); + }, + init: function( $listener ) { + if( _isInit ) { + $listener.apply( null ); + } + else { + event.on( 'init', $listener ); + } + return EZFB; + }, + removeInit: function( $listener ) { + event.unbind( 'init', $listener ); + return EZFB; + }, + like: function( $listener ) { + event.on( 'like', $listener ); + return EZFB; + }, + removeLike: function( $listener ) { + event.unbind( 'like', $listener ); + return EZFB; + }, + unlike: function( $listener ) { + event.on( 'unlike', $listener ); + return EZFB; + }, + removeUnlike: function( $listener ) { + event.unbind( 'unlike', $listener ); + return EZFB; + }, + loginStatus: function( $listener ) { + event.on( 'loginStatus', $listener ); + return EZFB; + }, + removeLoginStatus: function( $listener ) { + event.unbind( 'loginStatus', $listener ); + return EZFB; + }, + me: function( $listener ) { + event.on( 'me', $listener ); + return EZFB; + }, + removeMe: function( $listener ) { + event.unbind( 'me', $listener ); + return EZFB; + }, + login: function( $listener ) { + event.on( 'login', $listener ); + return EZFB; + }, + removeLogin: function( $listener ) { + event.unbind( 'login', $listener ); + return EZFB; + }, + logout: function( $listener ) { + event.on( 'logout', $listener ); + return EZFB; + }, + removeLogout: function( $listener ) { + event.unbind( 'logout', $listener ); + return EZFB; + }, + deauth: function( $listener ) { + event.on( 'deauth', $listener ); + return EZFB; + }, + removeDeauth: function( $listener ) { + event.unbind( 'deauth', $listener ); + return EZFB; + } + }; + + EZFB.on = EZFB.bind = function( $eventName, $listener ) { + return event.on( $eventName, $listener ); + }; + EZFB.off = EZFB.unbind = function( $eventName, $listener ) { + return event.off( $eventName, $listener ); + }; + EZFB.init = function( $listener ) { + return event.init( $listener ); + }; + EZFB.removeInit = function( $listener ) { + return event.removeInit( $listener ); + }; + EZFB.like = function( $listener ) { + return event.like( $listener ); + }; + EZFB.removeLike = function( $listener ) { + return event.removeLike( $listener ); + }; + EZFB.unlike = function( $listener ) { + return event.unlike( $listener ); + }; + EZFB.removeUnlike = function( $listener ) { + return event.removeUnlike( $listener ); + }; + EZFB.loginStatus = function( $listener ) { + return event.loginStatus( $listener ); + }; + EZFB.removeLoginStatus = function( $listener ) { + return event.removeLoginStatus( $listener ); + }; + + EZFB.update = function() { + FB.XFBML.parse(); + return this; + }; + EZFB.canvasAutosize = function() { + FB.Canvas.setSize(); + FB.Canvas.setAutoGrow(); + return this; + }; + EZFB.callLoginStatus = function() { + return api.loginStatus(); + }; + EZFB.getLoginStatus = function() { + return _loginStatus; + }; + EZFB.getUserId = function() { + return _userId; + }; + EZFB.getAccessToken = function() { + return _accessToken; + }; + EZFB.login = function( $scope, $listenerOrRedirectUrl ) { + return api.login( $scope, $listenerOrRedirectUrl ); + }; + EZFB.logout = function( $listener ) { + return api.logout( $listener ); + }; + + /* ==================================================================================================== + + Private Functions + + ==================================================================================================== */ + + var _each = function( $list, $iterator ) { + for( var i = 0, len = $list.length; i < len; i++ ) { + $iterator.call( null, $list[ i ], i, $list ); + } + } + + var _checkLanguage = function() { + var lang = navigator.language || navigator.browserLanguage; + lang = lang.toLowerCase(); + + switch( lang ) { + case 'af' : + case 'af_za' : + _lang = 'af_ZA'; + break; + case 'ar' : + case 'ar_ar' : + _lang = 'ar_AR'; + break; + case 'az' : + case 'az_az' : + _lang = 'az_AZ'; + break; + case 'be' : + case 'be_by' : + _lang = 'be_BY'; + break; + case 'bg' : + case 'bg_bg' : + _lang = 'bg_BG'; + break; + case 'bn' : + case 'bn_in' : + _lang = 'bn_IN'; + break; + case 'bs' : + case 'bs_ba' : + _lang = 'bs_BA'; + break; + case 'ca' : + case 'ca_es' : + _lang = 'ca_ES'; + break; + case 'cs' : + case 'cs_cz' : + _lang = 'cs_CZ'; + break; + case 'cy' : + case 'cy_gb' : + _lang = 'cy_GB'; + break; + case 'da' : + case 'da_dk' : + _lang = 'da_DK'; + break; + case 'de' : + case 'de_de' : + _lang = 'de_DE'; + break; + case 'el' : + case 'el_gr' : + _lang = 'el_GR'; + break; + case 'en_gb' : + _lang = 'en_GB'; + break; + case 'en_pi' : + _lang = 'en_PI'; + break; + case 'en_ud' : + _lang = 'en_UD'; + break; + case 'eo' : + case 'eo_eo' : + _lang = 'eo_EO'; + break; + case 'es' : + case 'es_es' : + _lang = 'es_ES'; + break; + case 'es_la' : + _lang = 'es_LA'; + break; + case 'et' : + case 'et_ee' : + _lang = 'et_EE'; + break; + case 'eu' : + case 'eu_es' : + _lang = 'eu_ES'; + break; + case 'fa' : + case 'fa_ir' : + _lang = 'fa_IR'; + break; + case 'fb' : + case 'fb_lt' : + _lang = 'fb_LT'; + break; + case 'fi' : + case 'fi_fi' : + _lang = 'fi_FI'; + break; + case 'fo' : + case 'fo_fo' : + _lang = 'fo_FO'; + break; + case 'fr_ca' : + _lang = 'fr_CA'; + break; + case 'fr' : + case 'fr_fr' : + _lang = 'fr_FR'; + break; + case 'fy' : + case 'fy_nl' : + _lang = 'fy_NL'; + break; + case 'ga' : + case 'ga_ie' : + _lang = 'ga_IE'; + break; + case 'gl' : + case 'gl_es' : + _lang = 'gl_ES'; + break; + case 'he' : + case 'he_il' : + _lang = 'he_IL'; + break; + case 'hi' : + case 'hi_in' : + _lang = 'hi_IN'; + break; + case 'hr' : + case 'hr_hr' : + _lang = 'hr_HR'; + break; + case 'hu' : + case 'hu_hu' : + _lang = 'hu_HU'; + break; + case 'hy' : + case 'hy_am' : + _lang = 'hy_AM'; + break; + case 'id' : + case 'id_id' : + _lang = 'id_ID'; + break; + case 'is' : + case 'is_is' : + _lang = 'is_IS'; + break; + case 'it' : + case 'it_it' : + _lang = 'it_IT'; + break; + case 'ja' : + case 'ja_jp' : + _lang = 'ja_JP'; + break; + case 'ka' : + case 'ka_ge' : + _lang = 'ka_GE'; + break; + case 'km' : + case 'km_kh' : + _lang = 'km_KH'; + break; + case 'ko' : + case 'ko_kr' : + _lang = 'ko_KR'; + break; + case 'ku' : + case 'ku_tr' : + _lang = 'ku_TR'; + break; + case 'la' : + case 'la_va' : + _lang = 'la_VA'; + break; + case 'lt' : + case 'lt_lt' : + _lang = 'lt_LT'; + break; + case 'lv' : + case 'lv_lv' : + _lang = 'lv_LV'; + break; + case 'mk' : + case 'mk_mk' : + _lang = 'mk_MK'; + break; + case 'ml' : + case 'ml_in' : + _lang = 'ml_IN'; + break; + case 'ms' : + case 'ms_my' : + _lang = 'ms_MY'; + break; + case 'nb' : + case 'nb_no' : + _lang = 'nb_NO'; + break; + case 'ne' : + case 'ne_np' : + _lang = 'ne_NP'; + break; + case 'nl' : + case 'nl_nl' : + _lang = 'nl_NL'; + break; + case 'nn' : + case 'nn_no' : + _lang = 'nn_NO'; + break; + case 'pa' : + case 'pa_in' : + _lang = 'pa_IN'; + break; + case 'pl' : + case 'pl_pl' : + _lang = 'pl_PL'; + break; + case 'ps' : + case 'ps_af' : + _lang = 'ps_AF'; + break; + case 'pt' : + case 'pt_pt' : + _lang = 'pt_PT'; + break; + case 'pt_br' : + _lang = 'pt_BR'; + break; + case 'ro' : + case 'ro_ro' : + _lang = 'ro_RO'; + break; + case 'ru' : + case 'ru_ru' : + _lang = 'ru_RU'; + break; + case 'sk' : + case 'sk_sk' : + _lang = 'sk_SK'; + break; + case 'sl' : + case 'sl_si' : + _lang = 'sl_SI'; + break; + case 'sq' : + case 'sq_al' : + _lang = 'sq_AL'; + break; + case 'sr' : + case 'sr_rs' : + _lang = 'sr_RS'; + break; + case 'sv' : + case 'sv_se' : + _lang = 'sv_SE'; + break; + case 'sw' : + case 'sw_ke' : + _lang = 'sw_KE'; + break; + case 'ta' : + case 'ta_in' : + _lang = 'ta_IN'; + break; + case 'te' : + case 'te_in' : + _lang = 'te_IN'; + break; + case 'th' : + case 'th_th' : + _lang = 'th_TH'; + break; + case 'tl' : + case 'tl_ph' : + _lang = 'tl_PH'; + break; + case 'tr' : + case 'tr_tr' : + _lang = 'tr_TR'; + break; + case 'uk' : + case 'uk_ua' : + _lang = 'uk_UA'; + break; + case 'vi' : + case 'vi_vn' : + _lang = 'vi_VN'; + break; + case 'zh' : + case 'zh_cn' : + _lang = 'zh_CN'; + break; + case 'zh_hk' : + _lang = 'zh_HK'; + break; + case 'zh_tw' : + _lang = 'zh_TW'; + break; + default : + _lang = 'en_US'; + } + } + + var _createFBML = function( $event ) { + if ( document.addEventListener || $event.type === 'load' || document.readyState === 'complete' ) { + _removeEvents(); + + var head = document.getElementsByTagName( 'head' )[ 0 ]; + var script = document.createElement( 'script' ); + script.text = '(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/' + _lang + '/all.js"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));'; + if( head.firstChild ) { + head.insertBefore( script, head.firstChild ); + } + else { + head.appendChild( script ); + } + + if( !document.getElementById( 'fb-root' ) ) { + var root = document.createElement( 'div' ); + root.setAttribute( 'id', 'fb-root' ); + if( document.body.firstChild ) { + document.body.insertBefore( root, document.body.firstChild ); + } + else { + document.body.appendChild( root ); + } + } + + if( window.fbAsyncInit ) { + _isInit = true; + } + else { + window.fbAsyncInit = function() { + _isInit = true; + + _applyListeners( 'init' ); + } + } + + EZFB.init( function() { + FB.Event.subscribe( 'edge.create', _subscribeHandler ); + FB.Event.subscribe( 'edge.remove', _unsubscribeHandler ); + } ); + } + } + + var _applyListeners = function( $eventName ) { + if( _eventList[ $eventName ] === undefined ) { + return false; + } + var list = _eventList[ $eventName ]; + var len = list.length; + var $params; + if( arguments[ 1 ] ) { + $params = [ arguments[ 1 ] ]; + } + else { + $params = []; + } + _each( list, function( $item ) { + $item.apply( null, $params ); + } ); + }; + + var _addListener = function( $eventName, $handler ) { + if( _eventList[ $eventName ] === undefined ) { + _eventList[ $eventName ] = []; + } + var list = _eventList[ $eventName ]; + if( list.indexOf( $handler ) < 0 ) { + for( var i = 0, len = list.length; i < len; i++ ) { + if( list[ i ].toString() == $handler.toString() ) { + return; + } + } + list.push( $handler ); + } + }; + + var _removeListener = function( $eventName, $handler ) { + if( _eventList[ $eventName ] === undefined ) { + return false; + } + + var list = _eventList[ $eventName ]; + var len = list.length; + for( var i = 0; i < len; i++ ) { + if( list[ i ] === $handler ) { + list.splice( i, 1 ); + return true; + } + } + return false; + }; + + var _addEvents = function() { + if ( document.addEventListener ) { + document.addEventListener( 'DOMContentLoaded', _createFBML ); + } else { + document.attachEvent( 'onreadystatechange', _createFBML ); + } + }; + + var _removeEvents = function() { + if ( document.addEventListener ) { + document.removeEventListener( 'DOMContentLoaded', _createFBML ); + } else { + document.detachEvent( 'onreadystatechange', _createFBML ); + } + }; + + var _subscribeHandler = function( $response ) { + _applyListeners( 'like', [ $response ] ); + }; + + var _unsubscribeHandler = function( $response ) { + _applyListeners( 'unlike', [ $response ] ); + }; + + var _getLoginStatusHandler = function( $response ) { + if( $response.status === 'connected' ) { + _loginStatus = 'connected'; + _userId = $response.authResponse.userID; + _accessToken = $response.authResponse.accessToken; + EZFB.user( null ); + EZFB.api.me( _meHandler ); + } else if ( $response.status === 'not_authorized' ) { + _loginStatus = 'not_authorized'; + _userId = null; + _accessToken = null; + EZFB.user( null ); + } else { + _loginStatus = 'no_login'; + _userId = null; + _accessToken = null; + EZFB.user( null ); + } + + _applyListeners( 'loginStatus', [ $response ] ); + }; + + var _meHandler = function( $response ) { + EZFB.user( $response ); + }; + + if (typeof define === 'function' && define.amd) { + define('EZFB', [], function() { + return EZFB; + }); + } + + /* ==================================================================================================== + + Constructor + + ==================================================================================================== */ + + ( function() { + if( !_isInit ) { + _checkLanguage(); + if( document.body ) { + _createFBML(); + } + else { + _addEvents(); + } + return this; + } + else { + console.log( 'EZFB is already initialized.' ); + } + })(); + +}).call( this ); From 97c9bcc1ee8b52a35295939b3f51e60adab9a7d4 Mon Sep 17 00:00:00 2001 From: nekoromancer Date: Tue, 22 Jul 2014 15:46:10 +0900 Subject: [PATCH 3/4] Delete EZFB.min.js --- src/EZFB.min.js | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 src/EZFB.min.js diff --git a/src/EZFB.min.js b/src/EZFB.min.js deleted file mode 100644 index d15914a..0000000 --- a/src/EZFB.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! EZFB v0.0.6 | (c) 2007-2014 The GrotesQ | grotesq.com */ -"use strict";Array.prototype.indexOf||(Array.prototype.indexOf=function(e,n){var a,t,r=n?n:0;if(!this)throw new TypeError;if(t=this.length,0===t||r>=t)return-1;for(0>r&&(r=t-Math.abs(r)),a=r;t>a;a++)if(this[a]===e)return a;return-1}),function(e,n){function a(e,n){for(var a=0,t=e.length;t>a;a++)n.call(null,e[a],a,e)}function t(){var e=navigator.language||navigator.browserLanguage;switch(e=e.toLowerCase()){case"af":case"af_za":B="af_ZA";break;case"ar":case"ar_ar":B="ar_AR";break;case"az":case"az_az":B="az_AZ";break;case"be":case"be_by":B="be_BY";break;case"bg":case"bg_bg":B="bg_BG";break;case"bn":case"bn_in":B="bn_IN";break;case"bs":case"bs_ba":B="bs_BA";break;case"ca":case"ca_es":B="ca_ES";break;case"cs":case"cs_cz":B="cs_CZ";break;case"cy":case"cy_gb":B="cy_GB";break;case"da":case"da_dk":B="da_DK";break;case"de":case"de_de":B="de_DE";break;case"el":case"el_gr":B="el_GR";break;case"en_gb":B="en_GB";break;case"en_pi":B="en_PI";break;case"en_ud":B="en_UD";break;case"eo":case"eo_eo":B="eo_EO";break;case"es":case"es_es":B="es_ES";break;case"es_la":B="es_LA";break;case"et":case"et_ee":B="et_EE";break;case"eu":case"eu_es":B="eu_ES";break;case"fa":case"fa_ir":B="fa_IR";break;case"fb":case"fb_lt":B="fb_LT";break;case"fi":case"fi_fi":B="fi_FI";break;case"fo":case"fo_fo":B="fo_FO";break;case"fr_ca":B="fr_CA";break;case"fr":case"fr_fr":B="fr_FR";break;case"fy":case"fy_nl":B="fy_NL";break;case"ga":case"ga_ie":B="ga_IE";break;case"gl":case"gl_es":B="gl_ES";break;case"he":case"he_il":B="he_IL";break;case"hi":case"hi_in":B="hi_IN";break;case"hr":case"hr_hr":B="hr_HR";break;case"hu":case"hu_hu":B="hu_HU";break;case"hy":case"hy_am":B="hy_AM";break;case"id":case"id_id":B="id_ID";break;case"is":case"is_is":B="is_IS";break;case"it":case"it_it":B="it_IT";break;case"ja":case"ja_jp":B="ja_JP";break;case"ka":case"ka_ge":B="ka_GE";break;case"km":case"km_kh":B="km_KH";break;case"ko":case"ko_kr":B="ko_KR";break;case"ku":case"ku_tr":B="ku_TR";break;case"la":case"la_va":B="la_VA";break;case"lt":case"lt_lt":B="lt_LT";break;case"lv":case"lv_lv":B="lv_LV";break;case"mk":case"mk_mk":B="mk_MK";break;case"ml":case"ml_in":B="ml_IN";break;case"ms":case"ms_my":B="ms_MY";break;case"nb":case"nb_no":B="nb_NO";break;case"ne":case"ne_np":B="ne_NP";break;case"nl":case"nl_nl":B="nl_NL";break;case"nn":case"nn_no":B="nn_NO";break;case"pa":case"pa_in":B="pa_IN";break;case"pl":case"pl_pl":B="pl_PL";break;case"ps":case"ps_af":B="ps_AF";break;case"pt":case"pt_pt":B="pt_PT";break;case"pt_br":B="pt_BR";break;case"ro":case"ro_ro":B="ro_RO";break;case"ru":case"ru_ru":B="ru_RU";break;case"sk":case"sk_sk":B="sk_SK";break;case"sl":case"sl_si":B="sl_SI";break;case"sq":case"sq_al":B="sq_AL";break;case"sr":case"sr_rs":B="sr_RS";break;case"sv":case"sv_se":B="sv_SE";break;case"sw":case"sw_ke":B="sw_KE";break;case"ta":case"ta_in":B="ta_IN";break;case"te":case"te_in":B="te_IN";break;case"th":case"th_th":B="th_TH";break;case"tl":case"tl_ph":B="tl_PH";break;case"tr":case"tr_tr":B="tr_TR";break;case"uk":case"uk_ua":B="uk_UA";break;case"vi":case"vi_vn":B="vi_VN";break;case"zh":case"zh_cn":B="zh_CN";break;case"zh_hk":B="zh_HK";break;case"zh_tw":B="zh_TW";break;default:B="en_US"}}function r(e){if(E.addEventListener||"load"===e.type||"complete"===E.readyState){u();var n=E.getElementsByTagName("head")[0],a=E.createElement("script");if(a.text='(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/'+B+'/all.js"; fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk"));',n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),!E.getElementById("fb-root")){var t=E.createElement("div");t.setAttribute("id","fb-root"),E.body.firstChild?E.body.insertBefore(t,E.body.firstChild):E.body.appendChild(t)}y.fbAsyncInit?S=!0:y.fbAsyncInit=function(){S=!0,s("init")},k.init(function(){FB.Event.subscribe("edge.create",l),FB.Event.subscribe("edge.remove",_)})}}function s(e){if(void 0===z[e])return!1;{var n,t=z[e];t.length}n=arguments[1]?[arguments[1]]:[],a(t,function(e){e.apply(null,n)})}function i(e,n){void 0===z[e]&&(z[e]=[]);var a=z[e];if(a.indexOf(n)<0){for(var t=0,r=a.length;r>t;t++)if(a[t].toString()==n.toString())return;a.push(n)}}function c(e,n){if(void 0===z[e])return!1;for(var a=z[e],t=a.length,r=0;t>r;r++)if(a[r]===n)return a.splice(r,1),!0;return!1}function o(){E.addEventListener?E.addEventListener("DOMContentLoaded",r):E.attachEvent("onreadystatechange",r)}function u(){E.addEventListener?E.removeEventListener("DOMContentLoaded",r):E.detachEvent("onreadystatechange",r)}function l(e){s("like",[e])}function _(e){s("unlike",[e])}function f(e){"connected"===e.status?(I="connected",p=e.authResponse.userID,v=e.authResponse.accessToken,k.user=null,k.api.me(b)):"not_authorized"===e.status?(I="not_authorized",p=null,v=null,k.user=null):(I="no_login",p=null,v=null,k.user=null),s("loginStatus",[e])}function b(e){k.user=e}var k,g,d,h,m,p,v,y=e,E=n,S=!1,L=!1,B="en_US",I="not_ready",z=[];k=y.EZFB={initialize:function(){return k?void console.log("EZFB is already initialized."):(t(),E.body?r():o(),this)}}.initialize(),k.user=null,k.appInit=function(e){if("object"==typeof e)m=e,h=m.appId;else{var n=arguments[1]?arguments[1]:!1,a=arguments[2]?arguments[2]:!0,t=arguments[3]?arguments[3]:!0,r=arguments[4]?arguments[4]:!1,s=arguments[5]?arguments[5]:null,i=arguments[6]?arguments[6]:!0,c=arguments[7]?arguments[7]:!1,o=arguments[8]?arguments[8]:null;m={appId:e,cookie:n,logging:a,status:t,xfbml:r,channelUrl:s,authResponse:i,frictionlessRequests:c,hideFlashCallback:o},h=e}return S?FB.init(m):this.init(function(){FB.init(m)}),this.init(this.update),this.init(this.callLoginStatus),this},g=k.api={loginStatus:function(e){return e&&d.on("loginStatus",e),L||(L=!0,FB.getLoginStatus(f)),k},me:function(e){return e&&d.on("me",e),FB.api("/me",function(e){k.user=e.error?null:e,s("me",e)}),k},deauth:function(e,n){void 0===e&&(e="");var t=e.split(" "),r=t.length,i=0;n&&d.on("deauth",n),a(t,function(e){FB.api("/me/permissions/"+e,"DELETE",function(){i++,i==r&&(s("deauth"),g.loginStatus())})})},login:function(e,n){var a=typeof n;if("string"==a){var t="https://www.facebook.com/dialog/oauth?client_id=%a&redirect_uri=%u&scope=%s";return t=t.replace("%a",h),t=t.replace("%u",n),t=t.replace("%s",e),y.top.location.href=t,this}return"function"==a&&d.on("login",n),FB.login(function(e){s("login",e),g.loginStatus()},{scope:e}),k},logout:function(e){return e&&d.on("logout",e),FB.logout(function(e){s("logout",e),g.loginStatus()}),k}},d=k.event={on:function(e,n){var t=e.split(" ");return a(t,function(e){console.log("on: "+e),i(e,n)}),this},bind:function(e,n){return this.on(e,n)},off:function(e,n){var t=e.split(" ");return a(t,function(e){c(e,n)}),this},unbind:function(e,n){return this.off(e,n)},init:function(e){return S?e.apply(null):d.on("init",e),k},removeInit:function(e){return d.unbind("init",e),k},like:function(e){return d.on("like",e),k},removeLike:function(e){return d.unbind("like",e),k},unlike:function(e){return d.on("unlike",e),k},removeUnlike:function(e){return d.unbind("unlike",e),k},loginStatus:function(e){return d.on("loginStatus",e),k},removeLoginStatus:function(e){return d.unbind("loginStatus",e),k},me:function(e){return d.on("me",e),k},removeMe:function(e){return d.unbind("me",e),k},login:function(e){return d.on("login",e),k},removeLogin:function(e){return d.unbind("login",e),k},logout:function(e){return d.on("logout",e),k},removeLogout:function(e){return d.unbind("logout",e),k},deauth:function(e){return d.on("deauth",e),k},removeDeauth:function(e){return d.unbind("deauth",e),k}},k.on=k.bind=function(e,n){return d.on(e,n)},k.off=k.unbind=function(e,n){return d.off(e,n)},k.init=function(e){return d.init(e)},k.removeInit=function(e){return d.removeInit(e)},k.like=function(e){return d.like(e)},k.removeLike=function(e){return d.removeLike(e)},k.unlike=function(e){return d.unlike(e)},k.removeUnlike=function(e){return d.removeUnlike(e)},k.loginStatus=function(e){return d.loginStatus(e)},k.removeLoginStatus=function(e){return d.removeLoginStatus(e)},k.update=function(){return FB.XFBML.parse(),this},k.canvasAutosize=function(){return FB.Canvas.setSize(),FB.Canvas.setAutoGrow(),this},k.callLoginStatus=function(){return g.loginStatus()},k.getLoginStatus=function(){return I},k.getUserId=function(){return p},k.getAccessToken=function(){return v},k.login=function(e,n){return g.login(e,n)},k.logout=function(e){return g.logout(e)}}(window,document); \ No newline at end of file From be5c7a85233fa44b793068a7fde22c1f20246a38 Mon Sep 17 00:00:00 2001 From: nekoromancer Date: Tue, 22 Jul 2014 15:53:35 +0900 Subject: [PATCH 4/4] Create bower.json --- bower.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 bower.json diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..28e4d02 --- /dev/null +++ b/bower.json @@ -0,0 +1,20 @@ +{ + "name": "EZFB", + "main": "src/EZFB.js", + "version": "0.6.0-b", + "authors": [ + "unknown@grotesq.com", + "nekonitrate@gmail.com + ], + "description": "Facebook Library for Javascript", + "moduleType": [ + "amd" + ], + "keywords": [ + "facebook", + "library", + "javascript" + ], + "license": "MIT", + "homepage": "http://grotesq.com" +}