IOS twitter API загружает более 20 подписчиков/подписок/твитовIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 IOS twitter API загружает более 20 подписчиков/подписок/твитов

Сообщение Anonymous »

У меня есть простой клиент Twitter, который я использую для отображения твитов пользователей, подписчиков и подписок.
По какой-то причине параметр счетчика для твитов пользователей игнорируется и является всегда загружается только 20 результатов.
Вот код:

Код: Выделить всё

- (void)getUserTweets {

// 1. Create a variable for twitter
NSURL *feedURL = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/user_timeline.json"];

// 2. Get AppDelegate reference
AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate];

// 3. Create NSDictionary for the TWR parameters
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: self.usernameToLoad, @"screen_name", @"true", @"include_user_entities", @"100", @"count", nil];

// 4. Create TWRequest, with parameters, URL & specify GET method
//TWRequest *twitterFeed = [[TWRequest alloc] initWithURL:feedURL parameters:parameters requestMethod:TWRequestMethodGET];
SLRequest *twitterFeed = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:feedURL parameters:params];

// 5. Specify twitter request's account to our app delegate's
twitterFeed.account = appDelegate.userAccount;

// Making the request

[twitterFeed performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{

// Check if we reached the reate limit

if ([urlResponse statusCode] == 429) {
NSLog(@"Rate limit reached");
return;
}

// Check if there was an error

if (error) {
NSLog(@"Error: %@", error.localizedDescription);
return;
}

// Check if there is some response data

if (responseData) {

NSError *error = nil;
self.userTweets = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];

}
});
}];

}
Это всегда будет возвращать только 20 результатов, даже если я установлю счетчик на какое-то низкое значение, например 1 или 2. Я делаю что-то неправильно при определении своих параметров?
Кроме того, я пытаюсь загрузить подписчиков и подписчиков пользователей, но я хочу загрузить в общей сложности 200, если каждый, но опять же загружается только 20.
Из чего Twitter API гласит: «Он обеспечивает автоматическую нумерацию страниц и использует параметр курсора, который я могу пройти, чтобы загрузить все нужные мне данные.
Мне трудно понять, как именно это работает. Вот мой код для подписки (подписчики идентичны, за исключением вызова другой строки API)

Код: Выделить всё

- (void)getFriends {

// 1. Create a variable for twitter
NSURL *feedURL = [NSURL URLWithString:@"https://api.twitter.com/1.1/friends/list.json"];

// 2. Get AppDelegate reference
AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate];

// 3. Create NSDictionary for the TWR parameters
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys: self.usernameToLoad, @"screen_name", @"true", @"include_user_entities", nil];

// 4. Create TWRequest, with parameters, URL & specify GET method
//TWRequest *twitterFeed = [[TWRequest alloc] initWithURL:feedURL parameters:parameters requestMethod:TWRequestMethodGET];
SLRequest *twitterFeed = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:feedURL parameters:parameters];

// 5.  Specify twitter request's account to our app delegate's
twitterFeed.account = appDelegate.userAccount;

// Making the request

[twitterFeed performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{

// Check if we reached the reate limit

if ([urlResponse statusCode] == 429) {
NSLog(@"Rate limit reached");
return;
}

// Check if there was an error

if (error) {
NSLog(@"Error: %@", error.localizedDescription);
return;
}

// Check if there is some response data

if (responseData) {

NSError *error = nil;
NSDictionary *TWData = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];

self.userFriends = [TWData objectForKey:@"users"];

}
});
}];

}
Я не уверен, как правильно выполнить цикл, поскольку API Twitter возвращает значение курсора, необходимое мне для перехода к следующим данным.
Любая помощь было бы здорово, возможно, мне просто не хватает какой-то логики, которую я не могу понять.

Подробнее здесь: https://stackoverflow.com/questions/176 ... ing-tweets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»