API Twitter не показывает старые твиты?

У меня проблема с twitter API. Я написал в твиттере в прошлом (около 400), но в последнее время я ничего не написал в твиттере. Когда я пытаюсь получить твиты от меня, используя twitter api, результатов нет. Как получить старые твиты?

Ответ 1

Twitter не возвращает твиты старше недели через поиск api. Взгляните на раздел ограничений из приведенной ниже ссылки:

https://dev.twitter.com/docs/using-search

Ответ 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.