/**
  * @inheritdoc
  */
 public function loadUserByOAuthUserResponse(UserResponseInterface $response)
 {
     try {
         $user = $this->userManager->findUser($response->getEmail());
     } catch (\Exception $e) {
         $username = $response->getEmail();
         $firstName = $response->getFirstName() != '' ? $response->getFirstName() : $response->getNickName();
         $lastName = $response->getLastName() != '' ? $response->getLastName() : '';
         try {
             $user = $this->userManager->createNewUser($username, $response->getEmail(), $firstName, $lastName);
         } catch (\Exception $e) {
             throw $e;
         }
     }
     return new User($user);
 }
 protected function loadTwitterUser(UserResponseInterface $response)
 {
     $user = $this->userManager->createUser();
     $user->setUsername($response->getUsername());
     $user->setEmail($response->getEmail());
     $user->setLastName($response->getRealName());
     $user->setFirstName($response->getNickName());
     $user->setType($response->getResourceOwner()->getName());
     $user->setAccessToken($response->getAccessToken());
     $user->setLocale($response->getLocale());
     if (is_null($user->getLocale())) {
         $user->setLocale('fr');
     }
     $user->setRoles(['ROLE_USER']);
     $user->setPassword('');
     $user->setEnabled(true);
     $user->setCreatedAt(new \DateTime());
     $user->setUpdatedAt(new \DateTime());
     $this->userManager->updateUser($user);
     return $user;
 }