Ответ 1
Twitter не возвращает твиты старше недели через поиск api. Взгляните на раздел ограничений из приведенной ниже ссылки:
У меня проблема с twitter API. Я написал в твиттере в прошлом (около 400), но в последнее время я ничего не написал в твиттере. Когда я пытаюсь получить твиты от меня, используя twitter api, результатов нет. Как получить старые твиты?
Twitter не возвращает твиты старше недели через поиск api. Взгляните на раздел ограничений из приведенной ниже ссылки:
У меня такая же проблема, как и у вас, поэтому после того, как вы увидели, что работает в Twitter Web Search, я начал реализовывать свое собственное решение, вы можете увидеть на моем GitHub. Он реализован на Java, но он сделает сообщение в моем блоге, чтобы объяснить, как это сделать на других языках. Я загрузил твиты без каких-либо проблем, мой последний тест я анализирую более 600 тыс. В течение 2014 года от некоторых конкретных пользователей.
Вы можете использовать ресурс REST API GET statuses/user_timeline для получения последних 3200 твитов с любой общедоступной временной шкалы.
Это возможно в веб-портале поиска в Твиттере, но не через их API. лентяй https://twitter.com/search-home
Здесь подробно описывается ответ @bennett-mcelwee, где можно получить до 3200 самых последних твитов пользователей в серии вызовов API. В настоящее время максимальное количество твитов, которое пользователь может получить за 1 запрос, составляет 200 с использованием GET statuses/user_timeline
API GET statuses/user_timeline
. Чтобы получить все твиты, которые пользователь разместил на своей временной шкале, сделайте следующее:
ШАГ 1
Сделайте GET вызов этой конечной точки, передав параметр count=200
.
ШАГ 2
Из возвращенных данных в шаге 1 получите идентификатор последнего твита
Выполните тот же вызов GET, но на этот раз передайте параметр max_id=
за которым следует идентификатор последнего сообщения, возвращенного из первого вызова, или -1
. Так, например, max_id=9987999
ШАГ 3
Повторяйте шаг 2, пока не получите новые (более старые) данные.
Для моей цели я смог сделать это в Ruby, используя https://github.com/sferik/twitter
Как только объект клиента создан, это так просто:
tweets = client.user_timeline('foobar', count: 200)
max_id = tweets.last.id - 1
tweets << client.user_timeline('foobar', count: 200, max_id: max_id)
Отсюда вы получаете идею, и довольно просто написать цикл, пока вы не получите все твиты, которые вы можете получить из API.