최근 검색 페이지 매기기
소개
- 최근 검색 엔드포인트는 쿼리에 최소 한 페이지로 응답하며, 추가 페이지가 있을 경우 JSON 응답에 next_token을 제공합니다. 일치하는 게시물을 모두 받기 위해서는 응답에 토큰이 더 이상 포함되지 않을 때까지 이 과정을 반복하면 됩니다.
- next_token은 만료되지 않습니다. 동일한 next_token 값을 사용한 여러 요청은 요청 시점과 무관하게 동일한 결과를 반환합니다.
-
게시물은 UTC 시간대를 기준으로 최신순(내림차순)으로 제공됩니다. 이는 개별 페이지 내에서도, 여러 페이지 전반에서도 동일합니다:
- 첫 번째 응답의 첫 번째 게시물은 쿼리와 일치하는 가장 최신 게시물입니다.
- 마지막 응답의 마지막 게시물은 쿼리와 일치하는 가장 오래된 게시물입니다.
- max_results 요청 파라미터를 사용하면 응답당 반환되는 게시물 수를 설정할 수 있습니다. 기본값은 게시물 10개이며 최대 100개까지 설정할 수 있습니다.
- 모든 페이지네이션 구현에는 응답 페이로드에서 next_token을 파싱하여 ‘다음 페이지’ 검색 요청에 포함하는 과정이 필요합니다. 이러한 ‘다음 페이지’ 요청을 구성하는 방법에 대한 자세한 내용은 아래를 참고하세요.
- 히스토리컬 조회 - 관심 있는 기간의 일치하는 게시물을 요청합니다. 이는 보통 히스토리컬 리서치를 위한 일회성 요청입니다. 검색 요청은 start_time 및 end_time 요청 파라미터를 기반으로 할 수 있습니다. 최근 검색 엔드포인트는 가장 최신의 일치하는 게시물부터 시작해 최신순으로 게시물을 반환합니다.
- 폴링 - 마지막으로 받은 게시물 이후에 게시된 일치하는 게시물을 요청합니다. 이 사용 사례는 근실시간 용도가 많으며, 관심 있는 새로운 게시물을 “수신”하기 위해 빈번한 요청이 특징입니다. 최근 검색 엔드포인트는 ‘폴링’ 패턴을 지원하기 위해 since_id 요청 파라미터를 제공합니다. 게시물 ID를 기준으로 탐색하는 데 도움이 되도록 until_id 요청 파라미터도 제공됩니다.
과거 데이터 조회
폴링 및 리스닝 사용 사례
https://api.x.com/2/tweets/search/recent?query=snow&since_id=12000
더 많은 데이터가 있고 next 토큰이 제공되는 경우 결과의 첫 페이지에 있는 newest_id 값만 필요합니다. 각 데이터 페이지에는 newest_id 및 oldest_id 값이 포함되지만, 정기적으로 수행되는 다음 폴링 요청에는 첫 페이지에서 제공된 값만 사용하면 됩니다. 따라서 폴링 방식을 구현하거나 ID 범위로 게시물을 검색하는 경우 페이지네이션 로직이 약간 더 복잡해집니다.
이제 일치하는 게시물이 18개 더 있다고 가정해 봅시다. 이 엔드포인트는 이 5분 구간의 다음 데이터 페이지를 요청할 수 있도록 전체 데이터 페이지와 next_token이 포함된 초기 응답을 반환합니다. 또한 5분 후 다음 폴링 구간에 필요한 최신 게시물 ID도 포함합니다.