52 votes

Obtenir la photo du profil LinkedIn

Existe-t-il un moyen simple de récupérer la photo de profil d'un utilisateur sur LinkedIn ?

Idéalement, comme vous le feriez avec Facebook. http://graph.facebook.com/userid/picture

3 votes

Prenez note de La réponse de ccoloma ci-dessous, car cela a changé beaucoup con v2 de l'API. Les réponses acceptées et les plus votées sont les suivantes v1 qui sera bientôt obsolète.

4voto

Siddharth Points 133

Cela fonctionne bien pour moi !

Expliqué -

C'est pour une vignette avec toutes les autres données-

https://api.linkedin.com/v1/people/~:(id,location,picture-urls::(original),specialties,public-profile-url,email-address,formatted-name)?format=json

Il s'agit de l'image originale avec toutes les autres données.

https://api.linkedin.com/v1/people/~:(id,location,picture-url,specialties,public-profile-url,email-address,formatted-name)?format=json

Il suffit d'utiliser picture-urls::(original) au lieu de picture-url !

Ce système est actuellement utilisé dans Gradbee

0 votes

J'obtiens un nom formaté (null) (null) avec l'url de l'image originale avec toutes les autres données - une idée ?

0 votes

@KrutikaSonawala il peut y avoir un problème avec le compte linkedin que vous autorisez. vérifiez ce lien avec votre propre profil linkedin. https://apigee.com/console/linkedin

2voto

Er Kimmi Dhingra Points 121

Lorsque vous vous connectez à linkedin, vous obtenez un code d'accès. Utilisez ce jeton d'accès et vous pourrez récupérer les données des utilisateurs.

 LinkedInApiClient client = factory.createLinkedInApiClient(accessToken);
                        com.google.code.linkedinapi.schema.Person person = client.getProfileForCurrentUser(EnumSet.of(
                                ProfileField.ID, ProfileField.FIRST_NAME, ProfileField.LAST_NAME, ProfileField.HEADLINE,
                                ProfileField.INDUSTRY, ProfileField.PICTURE_URL, ProfileField.DATE_OF_BIRTH,
                                ProfileField.LOCATION_NAME, ProfileField.MAIN_ADDRESS, ProfileField.LOCATION_COUNTRY));
    String imgageUrl=person.getPictureUrl();

1voto

Hoodah Points 31

Si votre objectif est simplement d'afficher la photo sur votre site, alors la méthode LinkedIn Plugin pour le profil des membres peut fonctionner pour vous. Il affichera la photo, quelques informations supplémentaires, ainsi que la marque LinkedIn.

Étant donné que l'API de LinkedIn est conçue pour être utilisée uniquement au nom de la utilisateur connecté actuel il n'offre pas de fonctionnalité similaire à l'api facebook graph.

1voto

piezzoritro Points 71

C'est ma solution et elle fonctionne très très bien :

def callback(self):
    self.validate_oauth2callback()
    oauth_session = self.service.get_auth_session(
        data={'code': request.args['code'],
              'grant_type': 'authorization_code',
              'redirect_uri': self.get_callback_url()},
        decoder=jsondecoder
    )
    me = oauth_session.get('people/~:(id,first-name,last-name,public-profile-url,email-address,picture-url,picture-urls::(original))?format=json&oauth2_access_token='+str(oauth_session.access_token), data={'x-li-format': 'json'}, bearer_auth=False).json()
    social_id = me['id']
    name = me['firstName']
    surname = me['lastName']
    email = me['emailAddress']
    url = me['publicProfileUrl']
    image_small = me.get('pictureUrl', None)
    image_large = me.get('pictureUrls', {}).get('values', [])[0]
    return social_id, name, surname, email, url, image_small, image_large, me

0voto

sparkle Points 1120

Pour moi, cela fonctionne

image= auth.extra.raw_info.pictureUrls.values.last.first

avec la gemme omniauth-linkedin

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X