MGTwitterEngine не возвращает повторные твиты, только «оригинальные» твиты - PullRequest
1 голос
/ 17 августа 2011

Я новичок в разработке приложений для iPhone и пытаюсь создать приложение для iPhone на базе Twitter.Я использую MGTwitterEngine для поиска и получения графика людей, за которыми я следую.Я использую метод:

[twitterEngine getFollowedTimelineSinceID:0 startingAtPage:0 count:100]; 

Все работает отлично, но есть несколько вещей, с которыми я борюсь:

  1. Я только получаю твиты, первоначально опубликованныепо моему списку подписчиков, никаких твитов вообще нет.Я бы очень хотел получить все твиты (оригинальные и повторные) за один и тот же звонок, но если мне нужно будет выполнить два запроса (один для твитов и один для повторных твитов), которые также будут хорошо работать для меня.
  2. Я получаю менее 100 твитов, хотя я точно знаю, что люди, за которыми я следую, опубликовали больше, чем это.Есть идеи, как ее решить?

Несколько человек отметили, что MGTwitterEngine не хватает функциональности переписывания в Твиттере.Я не пытаюсь повторять твиты, а просто получить полную хронологию (включая повторные твиты людей, за которыми я следую).

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 21 августа 2011

По предложению @bizsytes Я сделал две модификации в методе getTollowedTimelineSinceID MGTwitterEngine:

  1. Изменил строку пути с @ statuses / friends_timeline.% @ На @ statuses / home_timeline.% @

  2. Добавлен объект Include_RTS

Видимо, это решило обе мои проблемы (ретвиты и количество полученных статусов).

ТеперьТеперь метод выглядит следующим образом:

- (NSString *)getAllFollowedTimelineSinceID:(unsigned long)sinceID withMaximumID:(unsigned long)maxID startingAtPage:(int)page count:(int)count
{
    NSString *path = [NSString stringWithFormat:@"statuses/home_timeline.%@", API_FORMAT];

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0];
    if (sinceID > 0) {
        [params setObject:[NSString stringWithFormat:@"%u", sinceID] forKey:@"since_id"];
    }
    if (maxID > 0) {
        [params setObject:[NSString stringWithFormat:@"%u", maxID] forKey:@"max_id"];
    }
    if (page > 0) {
        [params setObject:[NSString stringWithFormat:@"%d", page] forKey:@"page"];
    }
    if (count > 0) {
        [params setObject:[NSString stringWithFormat:@"%d", count] forKey:@"count"];
    }

    [params setObject:[NSString stringWithFormat:@"%@", @"true"] forKey:@"Include_RTS"];


    return [self _sendRequestWithMethod:nil path:path queryParameters:params body:nil 
                            requestType:MGTwitterFollowedTimelineRequest 
                           responseType:MGTwitterStatuses];
}
0 голосов
/ 19 августа 2011

Посмотрите на это https://dev.twitter.com/docs/api/1/get/statuses/home_timeline

В частности, посмотрите на часть, которая говорит:

Include_RTS : When set to either true, t or 1,the timeline will contain native retweets (if they exist) in addition to the standard stream of tweets...

Теперь в методе getFollowedTimelineSinceID вам нужно будет создать новый объект для словаря params что-то вроде этих строк

[params setObject:[NSString stringWithFormat:@"%@", @"true"] forKey:@"Include_RTS"];

...