Skip to main content

소개

X API의 v2 버전 출시와 함께 새로운 데이터 응답 형식과 서로 다른 객체 및 필드를 요청하는 새로운 방식을 도입했고, 이를 통틀어 X API v2 형식이라고 부르고 있습니다.  이 일반적인 차이점 섹션에서는 Standard 및 Enterprise 사용자와 관련된 일부 변경 사항을 확인할 수 있습니다. 또한 Standard v1.1 Native format, Enterprise용 Native Enriched format, 그리고 Enterprise용 Activity Streams format에 대한 별도의 가이드를 제공하여 필드 매핑을 도와주고, 새로운 v2 필드를 요청하기 위해 어떤 필드와 expansions를 사용해야 하는지 설명합니다.  또한 시각적 데이터 형식 마이그레이션 도구를 사용하면 X API v1.1 데이터 형식X API v2 형식 간의 차이점을 빠르게 확인할 수 있습니다.

전반적인 차이점

객체와 필드 요청

pre-v2 엔드포인트와 v2 사이의 가장 큰 변화 중 하나는, 새로운 버전은 기본적으로 소수의 필드만 반환하는 반면 스탠다드, 프리미엄, 엔터프라이즈 엔드포인트는 대부분의 필드를 기본적으로 제공한다는 점입니다. 새로운 버전은 fieldsexpansions라는 파라미터를 사용해 기본값을 넘어서는 추가 데이터를 명시적으로 요청하도록 하며, 이를 통해 필요한 데이터만 요청하고 중요하지 않은 필드는 수집하지 않을 수 있습니다.  기본 데이터 객체와 관련된 필드를 요청하면, 해당 필드들은 기본값과 함께 그 기본 데이터 객체 안에 반환됩니다. 하지만 expansions 파라미터를 사용해 확장 객체를 요청하는 경우, 보조 객체들은 새로운 includes 객체에 반환됩니다. includes 객체 안의 확장 객체는, 두 객체 모두에 포함되어 반환되는 id 필드를 사용해서 기본 객체와 매칭할 수 있습니다. 예를 들어, v2 Post lookup 엔드포인트를 사용하면서 요청에 expansions=author_id 파라미터를 포함하면, 기본 게시물 객체 안에서 author_id 필드를 받게 되며, 추가로 includes 객체 안에서 게시물당 하나의 user 객체를 받게 됩니다. 각 user 객체에는 기본 id 필드가 포함되어 있으며, 이를 사용해 user 객체를 다시 게시물 객체와 매칭할 수 있습니다. 아래는 그 예시입니다:

업데이트된 JSON 설계

특정 필드를 요청하는 방식의 변경 사항 외에도 X API v2에서는 API가 반환하는 객체(예: 게시물user 객체)에 대해 새로운 JSON 설계를 도입합니다.
  • JSON 루트 수준에서 기존 표준 엔드포인트는 Post 객체를 statuses 배열에 담아 반환하는 반면, X API v2는 data 배열에 담아 반환합니다. 
  • 리트윗(Retweeted) 및 인용(Quoted) “statuses”를 사용하던 대신, X API v2 JSON은 리트윗된 Tweet과 인용된 Tweet을 참조합니다. contributors, user.translator_type와 같은 많은 레거시 및 사용 중단된 필드는 제거되고 있습니다. 
  • Post 객체의 favorites와 user 객체의 favourites를 모두 사용하던 것과 달리, X API v2는 like라는 용어만 사용합니다. 
  • X는 값이 없는 JSON 값(예: null)은 페이로드에 포함하지 않는 규칙을 채택하고 있습니다. Post 및 user 속성은 null이 아닌 값을 가질 때에만 포함됩니다.   

새로운 v2 필드

또한 다음을 포함하는 게시물 객체의 새로운 필드 집합을 도입했습니다.
  • conversation_id 필드
  • context 및 entities를 포함하는 두 개의 새로운 annotations 필드
  • 여러 개의 새로운 metrics 필드
  • 해당 게시물에 누가 답글을 달 수 있는지 보여주는 새로운 reply_setting 필드

표준 v1.1 데이터 형식에서 v2로 마이그레이션하기

아직 읽지 않았다면, 먼저 데이터 형식 마이그레이션 소개 문서를 읽어 보시기를 권장합니다. 또한 시각적 데이터 형식 마이그레이션 도구를 사용해 X API v1.1 데이터 형식X API v2 형식의 차이를 빠르게 확인해 볼 수도 있습니다. 네이티브 형식이라고도 불리는 표준 v1.1 데이터 형식은 standard v1.1 엔드포인트에서 기본적으로 제공되는 주된 형식입니다. 프리미엄 제품을 사용 중이라면 네이티브 enriched 데이터 형식에서 v2로 마이그레이션하기 가이드를 참조하세요. 엔터프라이즈 클라이언트는 Gnip 콘솔에서 설정된 방식에 따라 네이티브 enriched 형식 또는 activity streams를 사용 중일 수 있습니다. 

표준 v1.1 vs v2 페이로드 구조

다음 표는 v1.1 형식과 비교했을 때 v2에서 수신하게 될 상위 레벨 객체와 구조를 보여줍니다. 필드 매핑 다음 섹션에서는 각 v1.1 필드가 어떤 v2 필드에 매핑되는지, 그리고 새 필드를 수신하기 위해 어떤 v2 매개변수가 필요한지를 설명합니다.  

Tweet 객체

예시

User 객체

예시

엔티티 및 확장 엔티티 객체

예시

장소 객체

예시 다음 단계

Native Enriched 데이터 포맷에서 v2로 마이그레이션

Native Enriched 데이터 포맷은 당사의 enterprise 제품에서 사용됩니다. Native Enriched 데이터 포맷은 편집된 Tweet 메타데이터를 제공하도록 업데이트되었습니다. Edit Tweet 메타데이터에 대해 더 알아보려면 Edit Tweets fundamentals 페이지를 참조하세요. 표준 v1.1 엔드포인트를 사용 중이라면 standard v1.1 to v2 guide를 참조하세요. Activity Streams를 사용하는 enterprise 제품을 사용 중이라면 Activity Streams to v2 가이드도 준비되어 있습니다. X API v2는 Tweetuser 객체에 대해 새로운 JSON 설계를 도입했습니다.
  • JSON 루트 레벨에서 Native Enriched 포맷은 Tweet 객체를 results 배열로 반환하는 반면, X API v2는 data 배열로 반환합니다. 
  • Tweet 객체의 favorites와 user 객체의 favourites를 모두 사용하는 대신, X API v2는 like라는 용어만 사용합니다. 
  • X는 값이 없는 JSON 값(예: null)은 payload에 기록하지 않는 규칙을 채택하고 있습니다. Tweet 및 user 속성은 null이 아닌 값을 가질 때만 포함됩니다. 
  • v2의 모든 id 필드는 문자열(string) 형식입니다.  
새 JSON 포맷 변경 사항 외에도, Tweet 객체에 다음을 포함한 새로운 필드 세트도 도입했습니다:
  • conversation_id
  • reply_settings
  • 미디어의 alt_text
  • context 및 entities를 포함한 두 개의 새로운 annotations 필드
  • 여러 개의 새로운 metrics 필드
  • 여러 개의 새로운 polls 필드  
많은 레거시 및 사용 중단(deprecated) 필드가 제거됩니다:
  • contributors
  • 특정 entities.media 및 extended_entities.media 필드
  • filter_level
  • timestamp_ms
  • truncated

Native Enriched vs v2 페이로드 구조

다음 표는 Native Enriched 포맷과 비교했을 때 v2에서 받게 될 상위 수준 객체와 형식을 보여 줍니다. 필드 매핑 다음 섹션에서는 어떤 Native Enriched 필드가 어떤 v2 필드에 매핑되는지와, 새 필드를 받기 위해 필요한 v2 매개변수가 무엇인지 설명합니다.  

Tweet 객체

User 객체

Entities 및 Expanded entities 객체

Place 객체

Poll 객체

Activity Streams 데이터 형식에서 v2로 마이그레이션

Activity Streams 데이터 형식은 당사의 enterprise 제품에서 사용할 수 있습니다. Activity Streams 데이터 형식은 편집된 Tweet 메타데이터를 제공하도록 업데이트되었습니다. Edit Tweet 메타데이터에 대해 더 알아보려면 Edit Tweets 기본 사항 페이지를 확인하세요. 표준 v1.1 엔드포인트를 사용 중이라면 standard v1.1 to v2 가이드를 참조하세요. 프리미엄 엔드포인트나 enterprise용 Native Enriched 형식을 사용 중이라면 Native Enriched to v2 가이드를 참조하세요. X API v2는 게시물user 오브젝트에 대해 새로운 JSON 설계를 도입합니다.
  • JSON 루트 레벨에서 Activity Streams 형식은 results 배열에 Tweet 오브젝트를 반환하는 반면, X API v2는 data 배열을 반환합니다. 
  • 리트윗 및 인용 “activities”를 참조하는 대신, X API v2 JSON은 리트윗된 Tweet과 인용된 Tweet을 참조합니다. 
  • Tweet 오브젝트의 favorites 및 user 오브젝트의 favourites를 모두 사용하는 대신, X API v2는 like라는 용어를 사용합니다. 
  • X는 값이 없는 JSON 필드(예: 값이 null인 경우)는 페이로드에 기록하지 않는 관례를 채택하고 있습니다. Tweet 및 user 오브젝트의 속성은 null이 아닌 값을 가진 경우에만 포함됩니다. 
  • v2의 모든 id 필드는 문자열 형식입니다.  
새 JSON 형식 변경 사항 외에도, Tweet 오브젝트에 다음을 포함한 새로운 필드 집합이 도입되었습니다:
  • conversation_id
  • reply_settings
  • 미디어의 alt_text
  • context 및 entities를 포함한 두 개의 새로운 annotations 필드
  • 여러 새로운 metrics 필드
  • 여러 새로운 polls 필드  
많은 레거시 및 사용 중단(deprecated) 필드가 제거되거나 대체됩니다:
  • display_text_range
  • generator
  • gnip
  • link
  • objectType
  • provider
  • twitter_entities.symbols는 data.entities.cashtags로 대체됨
  • 특정 twitter_extended_entities.media 및 twitter_entities.media 필드
  • twitter_filter_level
  • twitterTimeZone
  • verb

Tweet 객체

User 객체

Poll 객체

Place 객체

미디어 객체

매칭 규칙 객체

시각적 데이터 포맷 마이그레이션 도구

시각적 데이터 포맷 마이그레이션 도구는 웹 애플리케이션으로, 특정 Tweet 또는 user 객체에 대해 X API v1.1 데이터 포맷에서 X API v2 포맷으로 매핑되는 필드를 시각적으로 보여줍니다. 이 매핑을 확인하려면 애플리케이션에 Tweet ID 또는 user ID를 입력하면 됩니다. 이 앱을 사용하려면 Twitter 계정으로 로그인해야 합니다.