2

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 認証ページには、以下のこのスクリーンショットに示すように、入力する必要のあるログイン フィールドとパスワード フィールドがあります。上記のコードを使用して認証ページを再度表示し、別のユーザーで認証すると、このスクリーンショットが表示され、上部でサインアウトする必要があります。これをプログラム的に行う方法はありますか?

4

1 に答える 1

1

の URL 文字列に &force_login=1 を追加-[STTwitterOAuth postTokenRequest:oauthCallback:errorBlock:]ます。

それが機能するかどうか教えてください。

于 2014-02-11T12:53:12.403 に答える