У меня проблема с twitter API. Я написал в твиттере в прошлом (около 400), но в последнее время я ничего не написал в твиттере. Когда я пытаюсь получить твиты от меня, используя twitter api, результатов нет. Как получить старые твиты?
API Twitter не показывает старые твиты?
Ответ 1
Twitter не возвращает твиты старше недели через поиск api. Взгляните на раздел ограничений из приведенной ниже ссылки:
Ответ 2
У меня такая же проблема, как и у вас, поэтому после того, как вы увидели, что работает в Twitter Web Search, я начал реализовывать свое собственное решение, вы можете увидеть на моем GitHub. Он реализован на Java, но он сделает сообщение в моем блоге, чтобы объяснить, как это сделать на других языках. Я загрузил твиты без каких-либо проблем, мой последний тест я анализирую более 600 тыс. В течение 2014 года от некоторых конкретных пользователей.
Ответ 3
Вы можете использовать ресурс REST API GET statuses/user_timeline для получения последних 3200 твитов с любой общедоступной временной шкалы.
Ответ 4
Это возможно в веб-портале поиска в Твиттере, но не через их API. лентяй https://twitter.com/search-home
Ответ 5
Здесь подробно описывается ответ @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.