SA_OAuthTwitterEngine
はiOSアプリでうまくいきましたが、数ヶ月前には機能しなくなりました(編集:iOS 4やiOS 5では動作しません。コードは、誤動作の前にアプリで変更されました)。それは、creds罰金を認証して格納し、私のデータベースサービスに渡すだけで大丈夫です。私がTweetを投稿しようとすると、すべてが適切なプロセスを経ているかのように記録されます。すべてのトークンとユーザー名などが正しく渡されます。しかし、私はTwitterに投稿を見ていない。私はポストで日付スタンプを使用していますが、どちらのアカウントからも1つのポストを見ることなく2つの異なるユーザーアカウントでこれを試しました。興味深いことに、MGTwitterEngineDelegate
コールバック(requestSucceeded:
およびrequestFailed:
)は呼び出されていません。私は、MGTwitterEngineのconnection:didReceiveResponse:
、connection:didReceiveData:
、およびconnection:didFailWithError:
にブレークポイントを設定して、デリゲートの割り当て問題であるかどうかを確認しましたが、それらのブレークポイントには決して到達していないため、アプリケーションがTwitterから応答を得ていないように見えます。エンジンのsendUpdate:メソッドから毎回返されます。代理人に接続の応答を受け取らせることができれば、おそらくエラーが表示されます。だから私は一日中頭を叩いています。どんな助けもありがとう。ここiOS SA_OAuthTwitterEngineは認証済みで投稿はしていませんが、デリゲートコールバックはありません
コード:
- (void)postTweetToTwitter
{
if (![[NSUserDefaults standardUserDefaults] objectForKey:TWITTER_USER]) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"ShowSettings" object:nil];
return; //Makes sure user data is stored in NSUserDefaults before continuing, if not, settings will prompt for authentication
}
NSString *formattedDateString = [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:kCFDateFormatterShortStyle timeStyle:kCFDateFormatterNoStyle];
NSString *tweetMessage = [NSString stringWithFormat:@"%@: Tweet message goes here.", formattedDateString];
if(!_engine){
_engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];
_engine.consumerKey = kOAuthConsumerKey;
_engine.consumerSecret = kOAuthConsumerSecret;
}
UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine: _engine delegate: self];
if (controller)
[self presentModalViewController: controller animated: YES];
else {
NSString *twitterConnectionIdentifier = [_engine sendUpdate:[NSString stringWithString:tweetMessage]];
NSLog(@"Twitter Connection Identifier : %@", twitterConnectionIdentifier);
}
}
- (NSString *) cachedTwitterOAuthDataForUsername: (NSString *) username {
NSString *authData = [[NSUserDefaults standardUserDefaults] objectForKey:TWITTER_USER];
if (authData) {
return authData;
} else return [NSString stringWithString:@"No Twitter Data"];
//This just won't do anything, but we avoid this case in the first if statement above.
}