0

我有一个应用程序,我在我的应用程序中集成了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];   
   }    
}

但在 stringresponse 它返回上述错误。

4

2 回答 2

4

尝试这个 :

- (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]);
}
于 2012-12-17T07:38:41.907 回答
0

从它的样子来看,您没有在帖子中传递“用户名/密码”,因此您得到的是“未知身份验证方案”。我不确定您是否能够在自己的应用程序中检测到登录用户的连接,除非您将他们的凭据存储在您的应用程序中。

于 2012-12-17T06:53:00.630 回答