0

我在这里过得很艰难。在我的应用程序中有一部分 STTwitter 是成功的,而另一部分(使用相同的代码)不返回任何内容。

不起作用的部分:`

-(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++;
                }
            }
        }];
    }
}

} `

起作用的部分:

  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);
        }];

谢谢!

4

1 回答 1

0

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

于 2014-11-17T13:37:04.497 回答