简体   繁体   中英

getting error when retrieving connections using linkedin api in iphone

I have an application where i am integrating linkedin in my app.I want to fetch the connections of the logged in user.For this i have done the code but it is returning error:

{
  "errorCode": 0,
  "message": "Unknown authentication scheme",
  "requestId": "98TKWP0T23",
  "status": 401,
  "timestamp": 1355726431107
}

This is the code that i have done:-

(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];   
   }    
}

but in the stringresponse it is returning the above mentioned error.

Try this :

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

From what it looks like, you are not passing up the "Username / Password" in the post, and as such you are getting the "Unknown authentication scheme". I am unsure if you would be able to detect in your own app the connections of the logged in user, unless you are storing their credentials inside your app.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM