【发布时间】:2013-07-23 15:29:08
【问题描述】:
我正在尝试将 LinkedIn 集成到我的 iOS 应用程序中,我需要在其中进行身份验证,然后获取个人资料详细信息并从我的应用程序发布到 LinkedIn。我使用这个示例项目LinkedIn OAuth Sample Client 作为参考非常成功地完成了所有这些事情,我做了一些修改,一切都运行良好。我使用的细节来自 LinnkedIn API 也可以实现这一点。 接下来,我需要从同一个应用发送邀请以在 LinkedIn 中建立联系。我尝试使用 Invitataion API 。
这是我的代码 sn-p:
-(void)sendInvitationToconnectTo:(NSString *)emailAddress withMessage:(NSString *)text
{
NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~/mailbox"];
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
consumer:oAuthLoginView.consumer
token:oAuthLoginView.accessToken
callback:nil
signatureProvider:[[OAHMAC_SHA1SignatureProvider alloc] init]];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *temp=[[NSDictionary alloc]initWithObjectsAndKeys:@"/people/email=userName@gmail.com",@"_path",@"userName1",@"first-name",@"userName2",@"last-name", nil];
NSDictionary *temp2=[[NSDictionary alloc] initWithObjectsAndKeys:temp,@"person",nil];
NSArray *arr2=[[NSArray alloc]initWithObjects:temp2, nil];
NSDictionary *value=[[NSDictionary alloc]initWithObjectsAndKeys:arr2,@"values", nil];
NSDictionary *dict3=[[NSDictionary alloc]initWithObjectsAndKeys:@"friend",@"connect-type",nil];
NSDictionary *dict4=[[NSDictionary alloc] initWithObjectsAndKeys:dict3,@"invitation-request", nil];
NSDictionary *dict=[[NSDictionary alloc]initWithObjectsAndKeys:dict4,@"item-content",@"Say yes!",@"body",@"Invitation to connect.",@"subject",value,@"recipients", nil];
NSString *updateString = [dict JSONString];
NSLog(@"updateString : %@",updateString);
[request setHTTPBodyWithString:updateString];
[request setHTTPMethod:@"POST"];
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
[fetcher fetchDataWithRequest:request
delegate:self
didFinishSelector:@selector(sendRequestApiCallResult:didFinish:)
didFailSelector:@selector(sendRequestApiCallResult:didFail:)];
[request release];
}
- (void)sendRequestApiCallResult:(OAServiceTicket *)ticket didFinish:(NSData *)data
{
NSLog(@"invitation sent");
[self networkApiCall];
}
- (void)sendRequestApiCallResult:(OAServiceTicket *)ticket didFail:(NSData *)error
{
NSLog(@"%@",[error description]);
}
我的 json 字符串如下所示:
{"body":"说是!","subject":"邀请 连接。","recipients":{"values":[{"person":{"first-name":"userName1","last-name":"userName2","_path":"/people/email= userName@gmail.com"}}]},"item-content":{"invitation-request":{"connect-type":"friend"}}}
发送邀请时我没有收到任何错误,当我调试时,sendRequestApiCallResult:(OAServiceTicket *)ticket didFinish:(NSData *)data 方法被调用,显示邀请发送文本。
但是这个问题是目标LinkedIn用户没有收到任何请求!
有人可以帮我解决这个问题吗?我的代码有什么问题吗?
NB我浏览了下面提到的两个链接以获得解决方案,尝试了解决方案,但徒劳无功。
1.Invitation API - Stumped by 401 (iOS and OAuthConsumer) - SOLVED
2.linkedin connect API gives error 401 - iphone
我得到的NSURLResponse 状态码是 401 !
编辑:: 自己解决了。请参阅下面的答案。
【问题讨论】:
-
嘿..如果可以的话请回答这个问题...stackoverflow.com/questions/33909797/…
标签: iphone ios objective-c linkedin linkedin-jsapi