简体   繁体   中英

STTwitter Not Returning Anything Neither Success or Error

I am having a very hard time here. There is one part in my application that STTwitter is successful and there is another part (using the same code) that does not return anything.

The part that does NOT work: `

-(IBAction)followTwitter:(id)sender {

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"twitter_on_file" ] == nil) {

    UIAlertView *allert = [[UIAlertView alloc] initWithTitle:@"Uh oh!" message:@"You have not linked your twitter account quite yet! Head to My Account settins to do so." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
    [allert show];

} else {
    ACAccountStore *store1 = [[ACAccountStore alloc] init];
    ACAccountType *twitterAccountType = [store1 accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    if ([twitterAccountType accessGranted]) {
        [store1 requestAccessToAccountsWithType:twitterAccountType options:nil completion:^(BOOL granted, NSError *error) {

            arrayOfUsernames = [[NSMutableArray alloc] init];

            iosAccounts = [store1 accountsWithAccountType:twitterAccountType];
            for (ACAccount *accou in iosAccounts) {
                [arrayOfUsernames addObject:accou.username];
            }

            NSString *usernameOnFile =  [[NSUserDefaults standardUserDefaults] objectForKey:@"twitter_on_file" ];
            int tracker = 0;

            for (NSString *username in arrayOfUsernames) {

                if ([username isEqualToString:usernameOnFile]) {
                    NSLog(@"Using twitter account: %@", username);
                    STTwitterAPI *twitterAPI = [STTwitterAPI twitterAPIOSWithAccount:iosAccounts[tracker]];
                    [twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username) {
                        NSLog(@"Successfully authenticated the user");

                    } errorBlock:^(NSError *error) {

                        NSLog(@"Erorr: %@", error);

                    }];
                    NSLog(@"Twitter API: %@", twitterAPI);

                    [twitterAPI postFriendshipsCreateForScreenName:@"kickscaterer" orUserID:nil successBlock:^(NSDictionary *befriendedUser) {

                        NSLog(@"Befriend %@", befriendedUser);


                    } errorBlock:^(NSError *error) {

                        NSLog(@"Error: %@", error);
                    }];
                } else {
                    tracker++;
                }
            }
        }];
    }
}

} `

The part that DOES work:

  STTwitterAPI *twitter= [STTwitterAPI twitterAPIOSWithAccount:iosAccounts[indexForAlert.row]];

        [twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {
            // ...
            NSLog(@"Username: %@", username);
            //  [self.tableView reloadData];


            [[NSUserDefaults standardUserDefaults] setObject:twitter.userName forKey:@"twitter_on_file"];

        } errorBlock:^(NSError *error) {
            NSLog(@"Error: %@", error);
            // ...
        }];

        [twitter postFriendshipsCreateForScreenName:@"didi4" orUserID:nil successBlock:^(NSDictionary *befriendedUser) {

            NSLog(@"Befriend %@", befriendedUser);


        } errorBlock:^(NSError *error) {

            NSLog(@"Error: %@", error);
        }];

Thanks!

应该在成功块调用postFriendshipsCreateForScreenName:方法,该方法的级别应与日志“成功验证用户”的级别相同。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM