Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour.
Depuis hier, j'ai rencontré un message 'erreur que e n'arrive pas à comprendre. J'ai recherché sur pas mal de forum, mais rien ne semble marcher dans mon cas. Dès lors, pourriez-vous m'aider (je précise que je suis un nouvel utilisateur de Zend)?
Mon problème : je cherche à permettre une connexion à partir de Linkedin et de Facebook.
Mais depuis hier, avec Linkedin, j'ai systématiquement une erreur HTTP (Error in HTTP request),
Alors que pour le Facebook, l'erreur est : Fatal error: Class 'adapter_Facebook' not found in /home/xxxx/application/modules/auth/controllers/IndexController.php on line 675
Array ( [type] => 1 [message] => Class 'adapter_Facebook' not found [file] => /home/xxx/application/modules/auth/controllers/IndexController.php [line] => 675 ) erreur qui correspond à cette ligne : $adapter= new adapter_Facebook($appid, $secret, $redirectUri, 'email');
Merci d'avance de votre retour.
Hors ligne
Salut,
Pour linkedin ça n'a pas de rapport avec le Zend Framework donc sans code ça va être encore plus difficile de savoir d'où vient le problème.
Concernant ton problème avec Facebook, il suffit de lire ton erreur c'est écrit :
Fatal error: Class 'adapter_Facebook' not found
. Donc c'est que ta classe n'existe pas. A vu de nez je dirais que c'est Adapter_Facebook si ça ne fonctionne pas sans plus d'infos on peut pas vraiment t'aider. De plus ça semble être du Zend Framework 1 donc tu es dans la mauvaise section.
Hors ligne
Merci de ta réponse.
Du coup je ne sais pas comment déplacer ce sujet en ZF1 ?
Pour le code :
[lang=php]public function loginSocialAction(){ $params = $this->getParams(); // get an instace of Zend_Auth $auth = Zend_Auth::getInstance(); $ns = new Zend_Session_Namespace('linkedin_oauth'); // check if a user is already logged if ($auth->hasIdentity()) { return $this->_redirect('/index/index'); } $bootstrap = $this->getInvokeArg('bootstrap'); if($params['type'] === 'facebook'){ $facebookConfig = $bootstrap->getConfig("facebook"); $appid = $facebookConfig->appid; $secret = $facebookConfig->secret; $redirectUri = $this->view->serverUrl() . $this->view->url(array('module'=> 'auth', 'controller'=> 'index', 'action'=> 'login-social','type'=>'facebook')); $adapter = new adapter_Facebook($appid, $secret, $redirectUri, 'email'); $result = $auth->authenticate($adapter); if ($result->isValid()) { $msgs = $result->getMessages(); $userInfo = $msgs['user']; $email = $userInfo->email; $user = PDW_Plugins_Auth_UsersDao::getInstance()->getUserByEmail($email); if (! $user) { $auth->clearIdentity(); $this->_redirect($this->view->url( array( 'action' => 'inscriptionsocial', 'module' => 'auth', 'controller' => 'index', 'emailsocial' => $email, 'lname' => $userInfo->last_name, 'fname' => $userInfo->first_name, ) ) ); } $result = PDW_Plugins_Manager::getInstance()->getPluginByName('Auth')->login($user->email, $user->password, isset($params['remember']), '/'); return $this->_redirect($this->view->url(array('module'=> 'projects', 'controller'=> 'index', 'action'=> 'index'))); } else { return $this->_redirect('/index/index'); } }else if($params['type'] == 'linkedin'){ $linkedinConfig = $bootstrap->getConfig("linkedin"); $appid = $linkedinConfig->appid; $secret = $linkedinConfig->secret; $config = array( 'callbackUrl' => $this->view->serverUrl(). $this->view->url(array('module'=> 'auth', 'controller'=> 'index', 'action'=> 'login-social', 'type'=> 'linkedin')), 'siteUrl' => 'https://api.linkedin.com/uas/oauth', 'consumerKey' => $appid, 'consumerSecret' => $secret, 'requestTokenUrl' => 'https://api.linkedin.com/uas/oauth/requestToken', 'userAuthorizationUrl' => 'https://www.linkedin.com/uas/oauth/authenticate', 'accessTokenUrl' => 'https://api.linkedin.com/uas/oauth/accessToken' ); $oauth = new Zend_Oauth_Consumer($config); if (! isset($params['oauth_verifier'])) { $token = $oauth->getRequestToken(array("scope"=>"r_basicprofile r_emailaddress")); $ns->request_token = serialize($token); $oauth->redirect(); } else { $accessToken = $oauth->getAccessToken($_GET, unserialize($ns->request_token)); // REtrieve the user info $client = $accessToken->getHttpClient($config); $client->setUri('https://api.linkedin.com/v1/people/~:(first-name,last-name,email-address)'); $client->setMethod(Zend_Http_Client::GET); $response = $client->request(); $content = $response->getBody(); $xml = simplexml_load_string($content); $firstnameLabel = 'first-name'; $lastnameLabel = 'last-name'; $emailLabel = 'email-address'; $firstname = $xml->$firstnameLabel; $lastname = $xml->$lastnameLabel; $email = $xml->$emailLabel; $user = PDW_Plugins_Auth_UsersDao::getInstance()->getUserByEmail($email); if (! $user) { $auth->clearIdentity(); $this->_redirect($this->view->url( array( 'action' => 'inscriptionsocial', 'module' => 'auth', 'controller' => 'index', 'emailsocial' => $email, 'lname' => $lastname, 'fname' => $firstname, ) ) ); } $result = PDW_Plugins_Manager::getInstance()->getPluginByName('Auth')->login($user->email, $user->password, isset($params['remember']), '/'); return $this->_redirect($this->view->url(array('module'=> 'projects', 'controller'=> 'index', 'action'=> 'index'))); } } }
Hors ligne
Je déplace dans la sectio ZF1
Hors ligne
cool merci pour ce partage
Hors ligne