IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

HWIOAuthBundle - Récupérer la photo de profil facebook [2.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Points : 6
    Points
    6
    Par défaut HWIOAuthBundle - Récupérer la photo de profil facebook
    Bonjour à tous,

    Je souhaite pouvoir récupérer la photo de profil Facebook de mon utilisateur pour l'intégrer dans ma vue Twig.

    Voici mon fichier config.yml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #HWIOAuthBundle
    hwi_oauth:
        firewall_name: main
        resource_owners:
            facebook:
                type:          facebook
                client_id:     %oauth.facebook.id%
                client_secret: %oauth.facebook.secret%
                scope:         "email"
                options:
                    display: popup
                infos_url:     "https://graph.facebook.com/me?fields=id,name,email,picture.type(square)"
                paths:
                    email:          email
                    profilepicture: picture.data.url
        http_client:
            verify_peer: false
    J'ai besoin d'intégrer le lien dans le src ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                                    <li class="user-header">
                                        <img src= "#" class="img-circle" alt="User Image" />
                                        <p>
                                            {{ app.user.username }}
                                        </p>
                                    </li>
    D'après la documentation une fois les paths configurés dans le fichier config.yml ces valeurs deviennent des variables globales et pour les afficher voici le code fournit par la documentation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /* @var $response \HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface */
    var_dump(
        $response->getEmail(),
        $response->getProfilePicture()
    );
    Seulement voilà après de multiples tentatives je ne sais pas comment je peux l'écrire en Twig pour avoir le getProfilePicture() dans mon src="".

    Merci beaucoup pour votre aide, c'est sûrement tout bête mais je bloque :/

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Salut,

    L'objet que tu récupère est la réponse OAuth de Facebook, ce n'est pas un objet User.
    Tes templates twig n'ont pas à connaitre le moindre objet de la partie OAuth.

    Il faut que tu passes l'images de la réponse Facebook à ton User (que tu l'enregistres éventuellement) et c'est l'image du User que tu vas afficher, et non celle de la réponse.
    ++

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Salut,

    Merci pour ta réponse,

    J'ai effectivement opté pour l'enregistrement du lien de l'image en BDD.

    Pour cela j'ai créé mon champ dans mon entité User puis j'ai modifié le UserProvider comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    protected function updateUserByOAuthUserResponse(User $user, UserResponseInterface $response)
        {
     
            $providerName = $response->getResourceOwner()->getName();
            $providerNameSetter = 'set'.ucfirst($providerName).'Id';
            $user->$providerNameSetter($response->getUsername());
     
            $user->setProfilePicture($response->getProfilePicture());
     
            if(!$user->getPassword()) {
                // generate unique token
                $secret = md5(uniqid(rand(), true));
                $user->setPassword($secret);
     
     
            }
     
            return $user;
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le nom des profiles utilisés pour la compilation
    Par thomas.huguerre dans le forum Maven
    Réponses: 2
    Dernier message: 23/04/2009, 12h24
  2. Récupérer l'ensemble des profils ?
    Par BXDSPORT dans le forum Langage
    Réponses: 0
    Dernier message: 18/06/2008, 17h52
  3. [MySQL] récupérer la photo sur le disque associée à la fiche élève
    Par allhambra dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/01/2008, 13h36
  4. [DOS] Récupérer les infos du profil utilisateur
    Par Amélie Ladoque dans le forum Windows
    Réponses: 2
    Dernier message: 13/01/2006, 17h41
  5. Comment ajouter une photo à mon profil ?
    Par ghita269 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 18/11/2005, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo