Twitter授权登录

时间:2014-02-10 23:11:54

标签: ios twitter twitter-oauth sttwitter

我正在使用STTwitter在iOS应用中与Twitter进行交互我正在为某人改变。当我第一次使用以下代码调用twitter授权页面时:

- (void)newUser
{
    [[NetworkManager sharedInstance] resetTwitterAPI];
    [[[NetworkManager sharedInstance] twitterAPI] postTokenRequest:^(NSURL *url, NSString *oauthToken) {
        [[UIApplication sharedApplication] openURL:url];
    } oauthCallback:@"tweepr://twitter_access_token" errorBlock:^(NSError *error) {
        NSLog(@"Error %s", __PRETTY_FUNCTION__);
    }];
}

* Which, in turn, calls this:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    if (![[url scheme] isEqualToString:@"tweepr"]) {
        return NO;
    }

    NSDictionary *d = [self parametersDictionaryFromQueryString:[url query]];

    NSString *token = d[@"oauth_token"];
    NSString *verifier = d[@"oauth_verifier"];

    [[UserLoadingRoutine sharedRoutine] setOAuthToken:token verifier:verifier];

    return YES; 
}

* Which finally calls this:

- (void)setOAuthToken:(NSString *)token verifier:(NSString *)verifier
{
    [[[NetworkManager sharedInstance] twitterAPI] postAccessTokenRequestWithPIN:verifier successBlock:^(NSString *oauthToken, NSString *oauthTokenSecret, NSString *userID, NSString *screenName) {
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

        dict[@"nickname"] = screenName;
        dict[@"token"] = oauthToken;
        dict[@"secret"] = oauthTokenSecret;
        dict[@"user_id"] = userID;
        self.userDict = dict;
        NSMutableArray *users = [self.availableUsers mutableCopy];
        if (![users containsObject:dict]) {
            [users addObject:dict];
        }
        self.availableUsers = [users copy];
        [[NSUserDefaults standardUserDefaults] setObject:self.availableUsers forKey:@"availableUsers"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        [self selectUserWithIdentifier:dict[@"nickname"]];
    } errorBlock:^(NSError *error) {
        NSLog(@"Error");
    }];
}

Twitter授权页面在第一次出现时,会填写登录名和密码字段,如下面This Screenshot所示。如果我通过上述代码再次启用授权页面以在其他用户下进行授权,则会显示This Screenshot,并且我需要在顶部注销。有没有办法以此方式执行此操作?

1 个答案:

答案 0 :(得分:1)

&force_login=1附加到-[STTwitterOAuth postTokenRequest:oauthCallback:errorBlock:]

中的网址字符串

让我知道它是否有效。