1

次の Twitter API を使用して友達リストを取得しています: https://api.twitter.com/1.1/friends/list.json ?

[SLRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) を使用して応答データを取得し、performRequestWithHandler ブロックで UI の変更とモデル データの変更を実行します。

ただし、1 回のリクエストで最大 20 人のフレンドしか取得できません (API でカーソル パラメータを -1 に設定した場合)。

API のカーソル パラメータを使用して、カーソル値が 0 になるまで次の 20 人の友達を取得するリクエストを送信できます。カーソル パラメータは、前のリクエストの応答データの「next_cursor」パラメータに設定できます。

しかし、前のリクエストの応答データの「next_cursor」値が0になるまで、前のリクエストのperformRequestWithHandlerで別のSLRequestを呼び出す方法を知りません。

SLRequest を使用して、または他の方法を使用してすべての友達を取得する方法を教えてください。

どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

1

Twitter の友達からの応答を受け取った直後に、要求ハンドラーで次の要求を呼び出すことができます。

詳しくなくてすみません。私はあなたが理解するだろうと思った。これがコードです。

    ACAccountStore *account = [[ACAccountStore alloc] init];
        ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

        // Request access from the user to access their Twitter account
        [account requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error)
         {
             // Did user allow us access?
             if (granted == YES)
             {
                 // Populate array with all available Twitter accounts
                 NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];

                 // Sanity check
                 if ([arrayOfAccounts count] > 0)
                 {

                     [self postRequest];

                 }
             }
         }];

- (void)PostRequest
{
       // Keep it simple, use the first account available
                     ACAccount *acct = [arrayOfAccounts objectAtIndex:0];

                     NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] init];
                     [tempDict setValue:@"Posting video" forKey:@"status"];

                     // Build a twitter request

                     SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:[NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update.json"] parameters:tempDict];

                     [postRequest setAccount:acct];

                     [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
                         NSLog(@"Twitter response, HTTP response: %i", [urlResponse statusCode]);
                         NSString *output = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
                         NSLog(@"%@", output);
**// calling this again and again will help you with multiple post request.**
[self postRequest]
                     }];
}

フレンドリストでも同様のことができます。

私が助けてくれることを願っています。

于 2013-04-09T07:55:31.003 に答える