Что именно означает «since_id» и «max_id» в Twitter API - PullRequest
31 голосов
/ 20 июня 2011

Я уже некоторое время перебираю документы в Твиттере, и я узнал, как получить статистику роста подписчиков за период времени / количество твитов за период времени ...

Я хочу понять от сообщества, что означают since_id, max_id и count в Twitter API.

Я следил за этой страницей https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user_timeline

Я пытаюсь получить статистику для пользователя -

  • количество твитов за определенный период времени
  • количество подписчиков за определенный период времени
  • количество ретвитов

Мне нужна помощь в формировании строк запросов для вышеперечисленного ..

Спасибо ..

Ответы [ 3 ]

32 голосов
/ 21 июня 2011

since_id и max_id - очень простые параметры, которые вы можете использовать, чтобы ограничить то, что вы получаете от API. От Документы :

since_id - возвращает результаты с ID больше чем (то есть более новый чем) указанный идентификатор. Есть ограничения на количество твитов, которые можно получить доступ через API. Если предел твитов произошел с тех пор Since_id, Since_id будет принудительное использование самого старого доступного идентификатора. max_id - возвращает результаты с идентификатором меньше чем (то есть старше чем) или равен указанному ID.

Итак, если у вас есть заданный идентификатор твита, вы можете искать более старые или новые твиты, используя эти два параметра.

count еще проще - оно задает максимальное количество твитов, которое вы хотите получить, до 200.

К сожалению, API не вернет вам именно то, что вы хотите - вы не можете указать дату / время при запросе user_timeline - хотя вы можете указать и при использовании API поиска. В любом случае, если вам нужно использовать user_timeline, вам нужно будет опросить API, собрать твиты, выяснить, соответствуют ли они требуемым параметрам, а затем соответствующим образом рассчитать вашу статистику.

13 голосов
/ 06 сентября 2013

max_id = начало списка идентификаторов твитов.since_id = нижняя часть списка идентификаторов твитов.

, чтобы узнать больше: взгляните на последнюю диаграмму .. здесь

1 голос
/ 24 апреля 2019

max_id и since_id используются для предотвращения избыточности в случае вызовов API Twitter. Визуализируйте твиты, входящие как штабелирование в стек. Один вызов API должен указать, сколько (количество) твитов будет обработано. Но, как только этот вызов сделан, могут быть добавлены новые твиты. В этом случае, если вы вытягиваете стек и запускаете процесс, вы замечаете, что между обработанными могут застревать фрагменты или фрагменты необработанных твитов. Это также видно на изображении ниже.

enter image description here

Чтобы обойти эту проблему, используются два параметра для отслеживания самого последнего / самого большого твита идентификатора, который был ранее обработан (since_id), и самого старого / самого низкого твита, недавно обработанного (max_id). Since_id указывает на нижнюю часть «фрагмента», а (max_id-1) указывает на верхнюю часть «фрагмента». (Обратите внимание, что max_id включительно в отличие от since_id) Таким образом, параметры вместе отслеживают, какая часть стека твитов еще должна быть обработана.

...