/** * callback() method check exchanged code and connect the customer * * @params array $aParams */ public function callback(array $aParams = null) { if (!empty($aParams['state']) && self::$oSession->get('state') == $aParams['state'] && !empty($aParams['code'])) { // get oauth_token $sResponse = BT_FPCModuleTools::fileGetContent($this->sGraphUrl . '&code=' . $aParams['code']); if (!empty($sResponse)) { // set params $aQUERY = array(); // parse URI parse_str($sResponse, $aQUERY); if (!empty($aQUERY['access_token'])) { // set session self::$oSession->set('access_token', $aQUERY['access_token']); return $this->connect(array('code' => $aParams['code'], 'access_token' => $aQUERY['access_token'])); } } else { throw new BT_FacebookException(FacebookPsConnect::$oModule->l('Internal server error. Facebook access token is empty or the connect method to the Facebook URL with HTTPS is not allowed. Please contact the merchant to warn him', 'facebook-connect_class'), 523); } } else { throw new BT_FacebookException(FacebookPsConnect::$oModule->l('The state doesn\'t match. You may be a victim of cross-site request forgery or you decided to cancel your connect processing. Please close this window', 'facebook-connector_class'), 524); } }