Có cách nào dễ dàng để chụp ảnh hồ sơ LinkedIn của người dùng không?Nhận Ảnh Tiểu sử LinkedIn
Lý tưởng tương tự như cách bạn làm với Facebook - http://graph.facebook.com/userid/picture
Có cách nào dễ dàng để chụp ảnh hồ sơ LinkedIn của người dùng không?Nhận Ảnh Tiểu sử LinkedIn
Lý tưởng tương tự như cách bạn làm với Facebook - http://graph.facebook.com/userid/picture
Không dễ dàng ... Bạn cần phải đi qua OAuth, sau đó thay mặt cho các thành viên, bạn yêu cầu:
http://api.linkedin.com/v1/people/{user-id}/picture-url
Bạn có thể lấy kích thước ảnh gốc với cuộc gọi này:
http://api.linkedin.com/v1/people/~/picture-urls::(original)
Lưu ý rằng đây có thể là bất kỳ kích thước nào, vì vậy bạn sẽ cần phải mở rộng quy mô ở bên cạnh bạn, nhưng hình ảnh là hình ảnh gốc do người dùng tải lên.
Cảm ơn. Nó hoạt động tốt! –
Bạn có thể giải thích điều này một cách dễ dàng hơn không. – JgdGuy
một điểm nhỏ để thực hiện - hình ảnh là 'ảnh gốc được tải lên bởi người dùng' ... với việc thêm biểu tượng linkedIn ở góc :) –
Khi bạn đăng nhập vào linkedin, bạn sẽ bị truy tố. Sử dụng truy cập vào thẻ và bạn có thể lấy dữ liệu người dùng
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();
Đối với tôi điều này làm việc
image = auth.extra.raw_info.pictureUrls.values.last.first
với đá quý omniauth-linkedin
Tôi đang sử dụng OWIN trong giải pháp của mình để sau khi người dùng cho phép ứng dụng của bạn sử dụng thông tin LinkedIn một yêu cầu GET đơn giản và đơn giản tới URL https://api.linkedin.com/v1/people/~:(picture-url)?format=json như đã giải thích trước đó.
Startup.Auth.cs My nộp
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);
Phương pháp của tôi để có được hình ảnh cá nhân của người dùng trong 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;
}
Và cuối cùng là một đoạn hành động của tôi mà tiêu thụ các phương pháp trên:
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);
...
}
Tôi hy vọng điều đó có thể hữu ích. Trân trọng
Nếu mục tiêu của bạn chỉ đơn giản là hiển thị ảnh trên trang web của bạn thì LinkedIn Member Profile Plugin có thể phù hợp với bạn. Nó sẽ hiển thị hình ảnh, một số thông tin bổ sung, cùng với xây dựng thương hiệu LinkedIn.
Vì API LinkedIn được thiết kế để chỉ được sử dụng thay mặt cho current logged in user, nó không cung cấp chức năng tương tự như api biểu đồ facebook.
Sau khi Linkedin xác thực người dùng sử dụng OAuth 2.x được thực hiện, hãy gửi yêu cầu tới URL của mọi người.
đâu ~
đứng cho người dùng xác thực hiện. Câu trả lời sẽ như thế này ...
{
"id": "KPxRFxLxuX",
"emailAddress": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"formattedName": "John Doe",
"pictureUrl": "https://media.licdn.com/mpr/mprx/0_0QblxThAqcTCt8rrncxxO5JAr...cjSsn6gRQ2b"
}
Hy vọng điều này sẽ hữu ích!
Đây có thể không hoàn toàn là những gì bạn đang yêu cầu, nhưng nó hữu ích cho các cuộc điều tra riêng lẻ.
Gọi trang trong Firefox, nhấp chuột trái vào menu trên hình nền. Chọn Kiểm tra phần tử (Q).
tìm kiếm -target-image" Đó sẽ là sự kết thúc của các thuộc tính id trong một yếu tố img. Các src thuộc tính của yếu tố đó img, sẽ là URL của hình ảnh nền.
Đây là ! giải pháp của tôi và nó hoạt động rất rất tốt:
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
này hoạt động tốt đối với tôi
giải thích -
Đây là một hình ảnh thu nhỏ với tất cả các đĩa dữ liệu khác
https://api.linkedin.com/v1/people/~:(id,location,picture-urls::(original),specialties,public-profile-url,email-address,formatted-name)?format=json
này là dành cho ảnh gốc với tất cả các dữ liệu khác -
https://api.linkedin.com/v1/people/~:(id,location,picture-url,specialties,public-profile-url,email-address,formatted-name)?format=json
Chỉ cần sử dụng picture-urls::(original)
thay vì picture-url
!
Điều này hiện đang được sử dụng trong Gradbee
nhận được định dạng-name (null) (null) với url cho bản gốc hình ảnh với tất cả các dữ liệu khác - bất kỳ ý tưởng nào? –
@KrutikaSonawala có thể có một số vấn đề với tài khoản được liên kết mà bạn đang ủy quyền. – Siddharth
Thật đáng tiếc, đã hy vọng có một cơ chế dễ dàng hơn. –
vì vậy chúng tôi cần phải thực hiện hai cuộc gọi, cuộc gọi đầu tiên để nhận url hình ảnh và địa chỉ thứ hai để có được hình ảnh thực tế? – saintmac
saintmac. Không, nếu bạn chỉ muốn hình ảnh hte chỉ cần gọi url này. {user-id} là một biến và "url hình ảnh" là văn bản thực tế bạn đưa vào url để tải hình ảnh. Tuy nhiên trong thử nghiệm của tôi, điều này trả về ảnh nhỏ hơn không phải là ảnh gốc. Tôi khuyên bạn nên trả lời dưới đây bằng cách sử dụng hình ảnh-url:: (ban đầu) – danielson317