MGTwitter会议

时间:2011-11-26 20:48:59

标签: iphone objective-c twitter

我正在使用MGTwitterEngine + Oauth库将Twitter集成到我的iPhone应用程序中。使用下面包含的代码,我可以允许用户登录twitter。

if(_engine) return;


    _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];
    _engine.consumerKey = @"XXXXXX";
    _engine.consumerSecret = @"XXXXXXXXX";


    UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine: _engine delegate: self];

    if (controller)
    {
        [self presentModalViewController: controller animated: YES];
    } 

我还有以下用于处理回调的委托方法。

#pragma mark SA_OAuthTwitterEngineDelegate

- (void) storeCachedTwitterOAuthData: (NSString *) data forUsername: (NSString *) username {

    NSUserDefaults  *defaults = [NSUserDefaults standardUserDefaults];



    [defaults setObject: data forKey: @"authData"];
    [defaults synchronize];
}

- (NSString *) cachedTwitterOAuthDataForUsername: (NSString *) username {

    return [[NSUserDefaults standardUserDefaults] objectForKey: @"authData"];
}

#pragma mark SA_OAuthTwitterController Delegate

- (void) OAuthTwitterController: (SA_OAuthTwitterController *) controller authenticatedWithUsername: (NSString *) username {

    NSLog(@"Authenticated with user %@", username);

    //tweets = [[NSMutableArray alloc] init];
    [self updateStream:nil];
}

- (void) OAuthTwitterControllerFailed: (SA_OAuthTwitterController *) controller {

    NSLog(@"Authentication Failure");
}

- (void) OAuthTwitterControllerCanceled: (SA_OAuthTwitterController *) controller {

    NSLog(@"Authentication Canceled");
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

用户可以使用以下代码发推文:

[_engine sendUpdate:@"Tweet"];

这一切似乎都很标准,但出于某种原因,如果我尝试从另一个类或返回用户创建另一个引擎,则用户必须重新登录才能创建可用的引擎。我错过了什么?

1 个答案:

答案 0 :(得分:0)

代码是对的。您已创建新实例,因此它要求进行身份验证。