Skip to main content

X API Posts 조회 엔드포인트 비교

v2 포스트 조회 엔드포인트는 기존 v1.1의 표준 GET statuses/lookupGET statuses/show 엔드포인트를 대체합니다. 이 가이드는 이러한 이전 버전에서 X API v2로 마이그레이션하는 개발자를 위한 것입니다.

엔드포인트 비교 표

설명Standard v1.1X API v2
지원되는 HTTP 메서드GETGET
호스트 도메인https://api.x.comhttps://api.x.com
엔드포인트 경로/1.1/statuses/show.json, /1.1/statuses/lookup.json/2/tweets
인증OAuth 1.0a 사용자 컨텍스트OAuth 1.0a 사용자 컨텍스트, OAuth 2.0 App-Only, OAuth 2.0 Authorization Code with PKCE
게시물 JSON 형식Standard v1.1 형식X API v2 형식 (fieldsexpansions 매개변수로 결정되며, v1.1과 하위 호환되지 않음)
특정 필드 선택 지원
annotations 필드 지원
새로운 metrics 필드 지원
conversation_id 필드 지원
게시물 편집 이력 제공
Project와 연결된 developer App의 자격 증명 필요

표준 v1.1과 X API v2 비교

표준 v1.1 GET statuses/showGET statuses/lookup 엔드포인트를 이미 사용해 왔다면, 이 가이드는 표준 엔드포인트와 X API v2 포스트 조회 엔드포인트 간의 공통점과 차이점을 이해하는 데 도움이 됩니다. X API v1.1 데이터 형식X API v2 형식의 차이를 빠르게 확인하는 데 도움이 되는 시각적 데이터 형식 마이그레이션 도구도 함께 참고해 보세요.
  • 유사점
    • OAuth 1.0a 사용자 컨텍스트
    • 요청당 포스트 개수 제한
    • 포스트 수정 이력 및 메타데이터 지원
  • 차이점
    • 엔드포인트 URL
    • App 및 Project 요구 사항
    • 응답 데이터 형식
    • 요청 매개변수

공통점

OAuth 1.0a 사용자 컨텍스트 인증 방식

표준 엔드포인트는 OAuth 1.0a User Context를 지원하며, 새 X API v2 게시물 조회 엔드포인트는 OAuth 1.0a User Context와 OAuth 2.0 App-Only를 모두 지원합니다. 따라서 이전에 표준 v1.1 게시물 조회 엔드포인트 중 하나를 사용했다면, X API v2 버전으로 마이그레이션하더라도 동일한 인증 방식을 계속 사용할 수 있습니다. App-Only 인증은 시작하기에 가장 간단한 방법일 가능성이 높습니다. App 액세스 토큰을 생성하는 방법을 알아보려면 이 OAuth 2.0 App-only 가이드를 참고하세요.

요청당 포스트 제한

v1.1 GET statuses/lookup 엔드포인트는 요청당 최대 100개의 포스트를 지정할 수 있습니다. 이는 GET /tweets 엔드포인트에도 동일하게 적용됩니다. 최대치인 100개의 포스트를 지정하려면 쉼표로 구분된 게시물 ID 목록을 쿼리 매개변수 ids로 전달하세요. 게시물 편집 기록 및 메타데이터 지원 두 버전 모두 편집 기록을 설명하는 메타데이터를 제공합니다. 자세한 내용은 Post 조회 API 참조 문서와 게시물 편집 기본 사항 페이지를 확인하세요.

차이점

엔드포인트 URL

  • Standard v1.1 엔드포인트:
    • https://api.x.com/1.1/statuses/show
    • https://api.x.com/1.1/statuses/lookup
  • X API v2 엔드포인트:
    • https://api.x.com/2/tweets
    • https://api.x.com/2/tweets/:id

App 및 Project 요구 사항

X API v2 엔드포인트는 인증을 위해 developer App과 연결된 Project의 자격 증명이 필요합니다. X API v1.1 엔드포인트는 단독 App 또는 Project와 연결된 App의 자격 증명을 사용할 수 있습니다.

응답 데이터 포맷

standard v1.1과 X API v2 엔드포인트 버전 간의 중요한 차이점 중 하나는 페이로드에서 필드를 선택하는 방식입니다. standard 엔드포인트의 경우, 많은 응답 필드가 기본적으로 포함되며, 매개변수를 사용해 추가 필드를 지정할 수 있습니다. 반면 X API v2는 기본적으로 Post idtext 필드만 제공합니다. 추가 필드와 객체를 받으려면 fieldsexpansions 매개변수를 사용해야 합니다. 확장된 필드는 응답 내 includes 객체에 포함되며, ID를 일치시켜 기본 Post 객체와 매칭할 수 있습니다. fields 및 expansions 사용에 대한 자세한 내용은 fields 및 expansions 사용 방법 가이드를 참고하세요. 또한 데이터 포맷 마이그레이션 가이드는 standard v1.1 필드를 새로운 v2 필드에 매핑합니다. 또한 X API v2는 Post 및 user 객체를 포함한 객체에 대해 새로운 JSON 설계를 도입합니다:
  • standard 엔드포인트는 Post 객체를 statuses 배열로 반환하는 반면, X API v2는 data 배열을 사용합니다.
  • X API v2에서는 “statuses”라는 용어 대신 Retweeted Tweet 및 Quoted Tweet이라는 용어를 사용합니다.
  • like와 같은 새로운 용어가 favoritesfavourites와 같은 용어를 대체합니다.
  • 값이 없는 속성(예: null)은 X API v2 페이로드에 포함되지 않습니다.
X API v2의 Post 객체에는 다음과 같은 새로운 필드가 포함됩니다:
  • conversation_id
  • 두 개의 새로운 annotations 필드(contextentities)
  • 새로운 metrics 필드
  • 특정 Post에 누가 답글을 달 수 있는지를 나타내는 reply_setting 필드

요청 매개변수

다음 standard v1.1 요청 매개변수는 X API v2에서 이에 상응하는 매개변수가 있습니다:
StandardX API v2
idids
일부 standard v1.1 매개변수는 X API v2에서 지원되지 않습니다:
StandardComment
tweet_modefields 및 expansions 기능으로 대체되었습니다.
trim_userfields 및 expansions로 대체되었습니다. 사용자 데이터에는 author_id expansion과 user.fields를 사용하세요.
include_my_retweet인증한 사용자가 리트윗한 포스트의 원본 게시물 ID를 제공합니다.
include_entities페이로드 내 엔터티를 제어하기 위해 fields 및 expansions를 사용하세요.
include_ext_alt_textalt 텍스트가 있을 경우 media 엔터티에 ext_alt_text 필드를 추가합니다.
include_card_uriads 카드가 첨부된 경우 card_uri를 추가합니다.
mapv1.1에서 필드가 null 처리되던 것과 달리, X API v2에서는 사용 불가능한 게시물에 대해 게시물 ID와 오류 메시지를 반환합니다.

CURL Requests

다음 cURL 요청은 표준 v1.1 엔드포인트와 이에 대응하는 v2 엔드포인트를 보여줍니다. 헤더의 ACCESS_TOKEN을 App 액세스 토큰으로 교체하세요. v2 엔드포인트의 경우, 토큰은 Project 내의 developer App에 속해야 합니다. v1.1의 응답 페이로드는 v2와 다릅니다. v2에서는 fieldsexpansions 파라미터를 사용해 서로 다른 필드를 요청할 수 있습니다. 표준 v1.1 GET statuses/lookup 및 v2 GET /tweets 엔드포인트
curl --request GET \
  --url 'https://api.x.com/1.1/statuses/lookup.json?id=1460323737035677698%2C1460323743339741184' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'
  curl --request GET \
  --url 'https://api.x.com/2/tweets?ids=1460323737035677698%2C1460323743339741184&tweet.fields=created_at&expansions=author_id&user.fields=created_at' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'
표준 v1.1의 GET statuses/show/:id 및 v2의 GET /tweets/:id 엔드포인트
curl --request GET \
  --url 'https://api.x.com/1.1/statuses/show.json?id=1460323737035677698' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'
curl --request GET \
  --url 'https://api.x.com/2/tweets/1460323737035677698?tweet.fields=created_at&expansions=author_id&user.fields=created_at' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'