Brambilla 0 Denunciar post Postado Setembro 3, 2015 Boa tarde, não tenho conhecimento sobre o Zend Framework Criei um faceAction no logincontroller.php public function faceAction() { $fb_cad = $this->_getParam('fb_cad'); $code = $this->_getParam('code'); $this->_helper->layout->disableLayout(); if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($code)) { $appId = 'xxxxxxxxx'; $appSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; $redirectUri = urlencode('http://site.com.br/login/face?fb_cad=1'); // Obtém o código da query string // Monta a url para obter o token de acesso e assim obter os dados do usuário $token_url = "https://graph.facebook.com/oauth/access_token?client_id=".$appId."&redirect_uri=".$redirectUri."&client_secret=".$appSecret."&code=".$code; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $token_url); curl_setopt($ch, CURLOPT_USERAGENT , isset( $_SERVER[ 'HTTP_USER_AGENT' ] ) ? $_SERVER[ 'HTTP_USER_AGENT' ] : "Mozilla/4.0" ); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); $token = explode('=', $response); $access_token = $token[1]; // echo $token_url; // echo '<br><pre>'; print_r($response); echo '<pre>'; if(isset($access_token)) { $graph_url = "https://graph.facebook.com/me?access_token=".$access_token; $user = json_decode(file_get_contents($graph_url)); // echo '<pre>'; print_r($user); echo '</pre>'; if(isset($user->email)) { /* A partir daqui, você já tem acesso aos dados usuário, podendo armazená-los em sessão, cookie ou já pode inserir em seu banco de dados para efetuar autenticação. */ $email = addslashes($user->email); //echo '<pre>'; print_r($user); echo '</pre>'; /* ------------------------------------------------------ */ // Aqui é o trecho que faz o login normalmente, // eu precisaria fazer o login somente pelo email e sem a senha // a partir daqui não consigo seguir para frente if ($login->isValid($data)) { $dados = $login->getValues(); $autentique = Default_Model_Login::login($dados['login'], $dados['senha']); if (isset($autentique['success'])) { $cesta = $_SESSION['CARRINHO']; if (!empty($_COOKIE['CARRINHO'])) $cesta = $_COOKIE['CARRINHO']; $cesta = unserialize($cesta); $this->_redirect($refer); } else { $this->_helper->flashMessenger(array('alert alert-message' => $autentique['error'])); $login->populate($data); } } /* ------------------------------------------------------ */ } else { $erro = 3; $msgErro = 'Ops! Problemas em capturar os dados do Facebook, favor tentar mais tarde'; } } else { $erro = 4; $msgErro = 'Ops! Problemas em capturar os dados do Facebook, favor tentar mais tarde'; } if($erro > 0) { ?> <center><div style="height:250px" id="divFace"><div class="geraIframe" style="color:#999; font-size:16px; margin:0 auto; padding:15px; margin-top:50px" align="center"><?php echo '000'.$erro.': '.$msgErro;?><br /><br /><a href="http://unearte.com.br/" class="botao_lar">Página Inicial</a></div></div></center> <?php } else if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])) { echo "<script type=\"text/javascript\">window.location='http://unearte.com.br';</script>"; } } Destaquei o trecho que não estou conseguindo prosseguir precisava ver se o email existe no banco e efetuar o login Obrigado Att. Brambilla Compartilhar este post Link para o post Compartilhar em outros sites