我正在构建一个应用程序并使用linkedIn oAuth2.0进行身份验证并获取用户的个人资料数据但不知何故我无法获得用户的完整个人资料信息。我正在使用iOSLinkedInAPI库进行身份验证。
这是我的代码。
- (void)viewDidLoad
{
NSArray *grantedAccess = @[@"r_fullprofile", @"r_network", @"r_emailaddress"];
NSString *clientId = @"client_id";
NSString *clientSecret = @"clientSecret";
NSString *state = @"state";
LIALinkedInApplication *application = [LIALinkedInApplication applicationWithRedirectURL:@"linkedin_login_redirect_url" clientId:clientId clientSecret:clientSecret state:state grantedAccess:grantedAccess];
self.client = [LIALinkedInHttpClient clientForApplication:application];
}
-(IBAction)linkedInButtonClicked:(id)sender
{
NSLog(@"did press login");
[self.client getAuthorizationCode:^(NSString *code) {
[self.client getAccessToken:code success:^(NSDictionary *accessTokenData) {
NSString *accessToken = [accessTokenData objectForKey:@"access_token"];
NSLog(@"%@",accessToken);
[self.client GET:[NSString stringWithFormat:@"https://api.linkedin.com/v1/people/~?oauth2_access_token=%@&format=json", accessToken] parameters:nil success:^(AFHTTPRequestOperation *operation, NSDictionary *result) {
NSLog(@"current user %@", result);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"failed to fetch current user %@", error);
}];
} failure:^(NSError *error) {
NSLog(@"Quering accessToken failed %@", error);
}];
} cancel:^{
NSLog(@"Authorization was cancelled by user");
} failure:^(NSError *error) {
NSLog(@"Authorization failed %@", error);
}];
}
输出:
我甚至得到了这个屏幕。
MyApp[723:60b] current user {
firstName = XYZ;
headline = "something at something";
lastName = XYZ;
siteStandardProfileRequest = {
url = "http://www.linkedin.com/profile/view?id=12345&authType=name&authToken=something";
};
}
答案 0 :(得分:1)
- (IBAction)didTapBtn:(id)sender {
[self.client getAuthorizationCode:^(NSString *code) {
[self.client getAccessToken:code success:^(NSDictionary *accessTokenData) {
NSString *accessToken = [accessTokenData objectForKey:@"access_token"];
[self requestMeWithToken:accessToken];
} failure:^(NSError *error) {
NSLog(@"Quering accessToken failed %@", error);
}];
} cancel:^{
NSLog(@"Authorization was cancelled by user");
} failure:^(NSError *error) {
NSLog(@"Authorization failed %@", error);
}];
}
- (void)requestMeWithToken:(NSString *)accessToken {
[self.client GET:[NSString stringWithFormat:@"https://api.linkedin.com/v1/people/~:(id,first-name,last-name,maiden-name,email-address)?oauth2_access_token=%@&format=json", accessToken] parameters:nil success:^(AFHTTPRequestOperation *operation, NSDictionary *result) {
NSLog(@"current user %@", result);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"failed to fetch current user %@", error);
}];
}
- (LIALinkedInHttpClient *)client {
LIALinkedInApplication *application = [LIALinkedInApplication applicationWithRedirectURL:@"https://www.example.com"
clientId:@"xxxxxxxxx"
clientSecret:@"xxxxxxxxx"
state:@"xxxxxx"
grantedAccess:@[@"r_fullprofile",@"r_emailaddress",@"r_network",@"r_contactinfo"]];
return [LIALinkedInHttpClient clientForApplication:application presentingViewController:nil];
}