>我有一个应用程序,我正在将LinkedIn集成到我的应用程序中。我想获取登录用户的连接。为此,我已经完成了代码,但它返回错误:
{
"errorCode": 0,
"message": "Unknown authentication scheme",
"requestId": "98TKWP0T23",
"status": 401,
"timestamp": 1355726431107
}
这是我完成的代码:-
(NSMutableArray*) getFriendsList
{
NSString *url1 = [NSString stringWithFormat:@"http://api.linkedin.com/v1/people/id=%@:(connections)?format=application/json",linkedinid];
NSLog(@"%@",url1);
NSURL *url = [NSURL URLWithString:url1];
OAMutableURLRequest *request = [[OAMutableURLRequest alloc]
initWithURL:url
consumer:consumer
token:token
callback:nil
signatureProvider:nil];
[request setValue:@"json" forHTTPHeaderField:@"x-li-format"];
[request setHTTPMethod:@"POST"];
NSError *err;
NSURLResponse *resp;
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&resp error:&err];
NSMutableArray *arr = [[NSMutableArray alloc] init];
if (response != nil)
{
NSString *stringResponse = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *linkedin_response = [parser objectWithString:stringResponse error:nil];
}
}
但在字符串响应中,它返回上述错误。
试试这个:
- (void)getFriendsList
{
NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~/connections"];
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
consumer:oAuthLoginView.consumer
token:oAuthLoginView.accessToken
callback:nil
signatureProvider:nil];
[request setValue:@"json" forHTTPHeaderField:@"x-li-format"];
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
[fetcher fetchDataWithRequest:request
delegate:self
didFinishSelector:@selector(networkApiCallResult:didFinish:)
didFailSelector:@selector(networkApiCallResult:didFail:)];
}
- (void)networkApiCallResult:(OAServiceTicket *)ticket didFinish:(NSData *)data
{
NSString *responseBody = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSDictionary *demo = [responseBody objectFromJSONString];
NSMutableArray *connections = [[NSMutableArray alloc] init];
for(int i=0;i<[[demo objectForKey:@"_count"] intValue];i++)
{
NSDictionary *person = [NSString stringWithFormat:@"%@ %@",[[[[responseBody objectFromJSONString]
objectForKey:@"values"]
objectAtIndex:i]
objectForKey:@"firstName"],[[[[responseBody objectFromJSONString]
objectForKey:@"values"]
objectAtIndex:i]
objectForKey:@"lastName"]];
NSLog(@"Connection %d : %@",i,[NSString stringWithFormat:@"%@ %@",[[[[responseBody objectFromJSONString]
objectForKey:@"values"]
objectAtIndex:i]
objectForKey:@"firstName"],[[[[responseBody objectFromJSONString]
objectForKey:@"values"]
objectAtIndex:i]
objectForKey:@"lastName"]]);
[connections addObject:person];
}
}
- (void)networkApiCallResult:(OAServiceTicket *)ticket didFail:(NSData *)error
{
NSLog(@"%@",[error description]);
}
从外观上看,您不会在帖子中传递"用户名/密码",因此您将获得"未知身份验证方案"。我不确定您是否能够在自己的应用程序中检测到登录用户的连接,除非您将他们的凭据存储在您的应用程序中。