Hatena::Groupiphone-dev

iOS プログラミングメモ

2013-12-12 (Thu)

TwitterのSLRequestまわりでリジェクトされた件について 16:27 TwitterのSLRequestまわりでリジェクトされた件について - iOS プログラミングメモ を含むブックマーク

みなさんこんにちは。

最近 Popin というアプリを作ってまして、Twitterのタイムラインから言及数が多かったりするURLを抜き出して表示してくれるアプリみたいですね。Twitterあんまり見てないけど最近話題になってる情報が知りたいって時に便利そうです。

で、Twitterのタイムラインからデータを取るのにSocial.frameworkのSLRequestを使ってるわけです。これを使うとTwitterAPIが簡単に使えて超ベンリなのです。事前準備としてアカウントを選んでもらったりとかしないといけませんが、タイムラインにアクセスするだけだったらこんな感じになってます。

NSString *accountIdentifier = ...;
NSURL *URL = [NSURL URLWithString:@"http://api.twitter.com/1.1/statuses/home_timeline.json"];
NSDictionary *params = { @"include_entities": @"1", @"count": @"100" };
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
                                        requestMethod:SLRequestMethodGET
                                                  URL:URL
                                           parameters:params];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccount *account = [accountStore accountWithIdentifier:accountIdentifier];
[request setAccount:account];

[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
   // responseDataがJSON
}];

それで、表題のリジェクトの件ですけどね。状況から言ってこのコードの辺りが原因でリジェクトされてしまいました。…もしやResolution CenterのやりとりはNDA範囲内かな。簡単に言うとガイドラインの「2.2 バグがあるアプリはダメ」って言われてスクリーンショットが添付されていました。UIAlertViewが表示されてるんですけど、内容は上記performRequestWithHandlerのNSErrorを表示したものと思われます。

NSURLErrorDomain:-1012

The operation couldn't be completed. (kCFErrorDomainCFNetwork error -1012.)

開発中にこういったエラーは見たことがなかったのでめんどくさいことになったなと…。

調べてみると、エラーコード1012はNSURLErrorUserCancelledAuthenticationとなってて認証まわりに問題がありそうだったから、ダメ元で「設定アプリでTwitterの認証をやり直してもう一回やってみてよ」って上申したら、つぎの日にReady for Saleになりました。やったね!

トラックバック - http://iphone-dev.g.hatena.ne.jp/ktakayama/20131212