Integracja LinkedIn w iOS: interfejs API zaproszenia nie działa
Próbuję się zintegrowaćLinkedIn w mojej aplikacji na iOS, gdzie muszę Uwierzytelniać, a następnie pobrać dane profilu i opublikować na LinkedIn w mojej aplikacji. Robię to wszystko z powodzeniem przy użyciu tego przykładowego projektuPrzykładowy klient LinkedIn OAuth jako odniesienie zrobiłem kilka modyfikacji i wszystko działa całkiem dobrze. I używam szczegółów zLinnkedIn API jak również do wdrożenia tego. Kolejny,Muszę wysłać zaproszenie, aby połączyć się z LinkedIn z tej samej aplikacji. Próbowałem użyćInvitataion API .
Oto mój fragment kodu:
-(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 protected]",@"_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]);
}
A mój łańcuch json wygląda tak:
{"body": "Say yes!", "subject": "Invitation to connect.", "recipients": {"values": [{"person": {"first-name": "userName1", "last -name ":" userName2 "," _ path ":" / people/[email protected] "}}]}," item-content ": {" invitation-request ": {" connect-type ":" przyjaciel „}}}
Podczas wysyłania zaproszeniaNie dostaję żadnych błędów a kiedy debuguję,sendRequestApiCallResult:(OAServiceTicket *)ticket didFinish:(NSData *)data
wywoływana jest metoda pokazywaniazaproszenie wysłane tekst. Ale chodzi o todocelowy użytkownik LinkedIn nie otrzymał żadnej prośby!
Czy ktoś może mi w tym pomóc? Czy jest coś, co robię źle w moim kodzie?
NB Przeszedłem przez oba poniższe linki, aby uzyskać rozwiązanie, wypróbowałem rozwiązania, ale na próżno.
1Zaproszenie API - zakłopotany przez 401 (iOS i OAuthConsumer) - SOLVED
2.API linkedin connect daje błąd 401 - iphone
iNSURLResponse
Otrzymuję kod statusu 401!
EDIT :: Sam rozwiązałem. Zobacz moją odpowiedź poniżej.