作成中のアプリに Instapaper API を取り込もうとしています。完全な API を読むと、OAuth を使用する必要があります。私は OAuthConsumer ライブラリの準備ができており、これは私がこれまでに持っているコードです:
OAConsumer *consumer = [[OAConsumer alloc] initWithKey:INSTAPAPER_API_CONSUMER_KEY
secret:INSTAPAPER_API_CONSUMER_SECRET];
NSURL *url = [NSURL URLWithString:instapaper_API_ACCESS_TOKEN_URL];
OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
consumer:consumer
token:nil // we don't have a Token yet
realm:nil // our service provider doesn't specify a realm
signatureProvider:nil]; // use the default method, HMAC-SHA1
[request setHTTPMethod:@"POST"];
[request setParameters:[NSArray arrayWithObjects:
[OARequestParameter requestParameter:@"x_auth_mode" value:@"client_auth"],
[OARequestParameter requestParameter:@"x_auth_username" value:username.text],
[OARequestParameter requestParameter:@"x_auth_password" value:password.text],
nil]];
OADataFetcher *fetcher = [[OADataFetcher alloc] init];
[fetcher fetchDataWithRequest:request
delegate:self
didFinishSelector:@selector(didReceiveAccessToken:data:)
didFailSelector:@selector(didFailOAuth:error:)];
この後の私の唯一の問題は、フェッチャーがデータをフェッチした後にセレクターが実行されないことです。同じソース ファイルで定義されたセレクターがありますが、OADataFetcher.m で定義されている他のセレクターがいくつかあります。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
OAServiceTicket *ticket = [[OAServiceTicket alloc] initWithRequest:request
response:response
data:responseData
didSucceed:[(NSHTTPURLResponse *)response statusCode] < 400];
[delegate performSelector:didFinishSelector withObject:ticket withObject:responseData];
[ticket release];
}
私が何をすべきか/私が間違っていることについて何か提案はありますか?