Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-04-2015 15:49:54

djbabou
Nouveau membre
Date d'inscription: 29-04-2015
Messages: 2

Impossible de créer un compte en utilisant Facebook ou LinkedIn

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

 

#2 29-04-2015 16:19:28

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Impossible de créer un compte en utilisant Facebook ou LinkedIn

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

 

#3 29-04-2015 16:38:46

djbabou
Nouveau membre
Date d'inscription: 29-04-2015
Messages: 2

Re: Impossible de créer un compte en utilisant Facebook ou LinkedIn

Merci de ta réponse.
Du coup je ne sais pas comment déplacer ce sujet en ZF1 ?

Pour le code :

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

 

#4 29-04-2015 18:15:53

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Impossible de créer un compte en utilisant Facebook ou LinkedIn

Je déplace dans la sectio ZF1

Hors ligne

 

#5 29-07-2015 15:46:10

AAJimboli
Nouveau membre
Date d'inscription: 29-07-2015
Messages: 1

Re: Impossible de créer un compte en utilisant Facebook ou LinkedIn

cool merci pour ce partage

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages