portada perfil para imagenes imagen fotos fondo como cambiar api linkedin

api - para - Cómo obtener una imagen de perfil de LinkedIn



imagenes de linkedin (10)

¡Esto funciona bien para mi!

Explicado -

Esto es para una miniatura con todos los demás datos

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

Esto es para la imagen original con todos los demás datos -

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

Simplemente usa picture-urls::(original) lugar de picture-url de la picture-url .

Esto se está utilizando actualmente en Gradbee

¿Hay alguna manera fácil de obtener una foto de perfil de LinkedIn de los usuarios?

Idealmente similar a cómo lo harías con Facebook - http://graph.facebook.com/userid/picture


Cuando inicie sesión en linkedin, obtendrá acceso a la cuenta. Usa ese token de acceso y puedes recuperar los datos de los usuarios

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();


Esta es mi solución y funciona muy 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


Estoy usando OWIN en mi solución, así que después de que el usuario permita su aplicación use credenciales de LinkedIn, una simple y simple solicitud GET a la URL https://api.linkedin.com/v1/people/~:(picture-url)?format=json como se explicó anteriormente con una autorización de portador en los encabezados de solicitud, resolvió mis problemas.

Mi archivo Startup.Auth.cs

var linkedInOptions = new LinkedInAuthenticationOptions() { ClientId = [ClientID], ClientSecret = [ClientSecret], Provider = new LinkedInAuthenticationProvider() { OnAuthenticated = (context) => { // This is the access token received by your application after user allows use LinkedIn credentials context.Identity.AddClaim(new Claim( "urn:linkedin:accesstoken", context.AccessToken)); context.Identity.AddClaim(new Claim( "urn:linkedin:name", context.Name)); context.Identity.AddClaim(new Claim( "urn:linkedin:username", context.UserName)); context.Identity.AddClaim(new Claim( "urn:linkedin:email", context.Email)); context.Identity.AddClaim(new Claim( "urn:linkedin:id", context.Id)); return Task.FromResult(0); } } }; app.UseLinkedInAuthentication(linkedInOptions);

Mi método para obtener la imagen de perfil del usuario en LinkedIn:

public string GetUserPhotoUrl(string accessToken) { string result = string.Empty; var apiRequestUri = new Uri("https://api.linkedin.com/v1/people/~:(picture-url)?format=json"); using (var webClient = new WebClient()) { webClient.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + accessToken); var json = webClient.DownloadString(apiRequestUri); dynamic x = JsonConvert.DeserializeObject(json); string userPicture = x.pictureUrl; result = userPicture; } return result; }

Y finalmente un fragmento de mi acción que consume el método anterior:

public async Task<ActionResult> ExternalLoginCallback(string returnUrl) { ... var externalIdentity = HttpContext.GetOwinContext().Authentication.GetExternalIdentityAsync(DefaultAuthenticationTypes.ExternalCookie); string accessToken = externalIdentity.Result.Claims.FirstOrDefault(c => c.Type == "urn:linkedin:accesstoken").Value; model.PhotoUrl = GetUserPhotoUrl(accessToken); ... }

Espero que pueda ayudar. Atentamente


No es tan fácil ... Necesita pasar por OAuth, luego en nombre del miembro, usted solicita:

http://api.linkedin.com/v1/people/{user-id}/picture-url


Para mí esto funciona

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

con la gema omniauth-linkedin


Puede que no sea exactamente lo que está pidiendo, pero es útil para investigaciones individuales.

Abra la página en Firefox, haga clic en el menú sobre la imagen de fondo. Seleccione Inspeccionar Elemento (Q).

buscar -target-image "Ese será el final del atributo id en un elemento img. El atributo src de ese elemento img será la URL de la imagen de fondo.



Si su objetivo es simplemente mostrar la foto en su sitio, entonces el complemento de perfil de miembro de LinkedIn puede funcionar para usted. Mostrará la foto, alguna información adicional, junto con la marca de LinkedIn.

Dado que la API de LinkedIn está diseñada para ser utilizada solo en nombre del usuario que está conectado actualmente, no ofrece una funcionalidad similar a la API de Facebook.


Una vez realizada la autenticación de usuario de Linkedin con OAuth 2.x, realice una solicitud a la URL de personas.

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

Donde ~ representa el usuario autenticado actual. La respuesta será algo como esto ...

{ "id": "KPxRFxLxuX", "emailAddress": "[email protected]", "firstName": "John", "lastName": "Doe", "formattedName": "John Doe", "pictureUrl": "https://media.licdn.com/mpr/mprx/0_0QblxThAqcTCt8rrncxxO5JAr...cjSsn6gRQ2b" }

¡Espero que esto ayude!