메인 콘텐츠로 건너뛰기

소개

최근 검색 엔드포인트는 지난 7일 이내에 게시된 게시물만 조회할 수 있지만, 사용자 게시물 타임라인 엔드포인트와 사용자 멘션 타임라인 엔드포인트는 권한이 있는 사용자(사용자 id 사용)에 대해 7일보다 더 이전의 게시물과 멘션도 조회할 수 있습니다. 개발자는 이러한 엔드포인트를 사용하여 사용자의 타임라인이나 멘션에서 게시물의 주제, 엔터티, 감정을 분석할 수 있습니다. 이 튜토리얼에서는 사용자 게시물 타임라인 엔드포인트와 사용자 멘션 타임라인 엔드포인트를 사용해 사용자의 게시물과 멘션을 탐색하는 방법을 보여드립니다.  

사전 준비 사항

승인된 개발자 계정

아직 없다면 개발자 계정을 신청하세요.

프로젝트를 생성하고 앱 연결하기

개발자 포털에서 ‘새 프로젝트 만들기’를 클릭하세요.
프로젝트 이름을 지정하고, 적절한 사용 사례를 선택한 뒤, 프로젝트 설명을 입력하세요. 다음으로 새 앱을 만들거나 기존 App을 연결할 수 있습니다(앱은 X API에 HTTP 요청을 보내는 데 필요한 API 키를 보관하는 컨테이너입니다).
‘create a new App instead’을 클릭하고 새 앱을 만들기 위해 앱 이름을 지정하세요.
‘완료’를 클릭하면 API 키와 베어러 토큰이 발급되며, 이를 사용해 X API v2의 새로운 엔드포인트에 연결할 수 있습니다.
API key, API secret key, Bearer token 옆의 (+)를 클릭한 뒤 해당 값을 로컬 머신의 안전한 위치에 복사하세요. 다음 단계에서 API 호출을 수행하는 데 필요합니다. 참고: 위 스크린샷의 키는 숨겨져 있지만, 본인의 개발자 포털에서는 API key, API secret key, Bearer token의 실제 값을 확인할 수 있습니다.  

사용자 게시물 타임라인 및 사용자 멘션 타임라인 엔드포인트에서 사용할 사용자 ID를 얻는 방법

사용자 게시물 타임라인 및 사용자 멘션 타임라인 엔드포인트에서는 사용자 ID를 사용해 게시물을 조회할 수 있습니다. 사용자 이름으로부터 사용자 ID를 가져오려면 새로운 user lookup endpoint v2를 사용하세요. USER_NAME을 원하는 사용자 이름으로, XXXX를 위에서 발급받은 본인의 베어러 토큰으로 각각 바꾸세요
  curl --request GET 'https://api.x.com/2/users/by/username/USER_NAME' --header 'Authorization: Bearer XXXXXX'
아래와 같이 응답에서 사용자 id를 확인할 수 있습니다.
{
   "data": {
       "id": "2244994945",
       "name": "Developers"
       "username": "XDevelopers"
   }
}

사용자 게시물 타임라인 및 사용자 멘션 타임라인 엔드포인트에 연결하기

특정 사용자의 게시물 타임라인을 가져오려면 터미널에서 다음 curl 명령을 실행하세요(위에서 받은 자신의 베어러 토큰으로 XXXX를, 원하는 사용자의 사용자 ID로 USER_ID를 각각 바꾸세요)
curl --request GET 'https://api.x.com/2/users/USER_ID/tweets' --header 'Authorization: Bearer XXXXXX'
이러한 요청의 JSON 응답에는 기본적으로 게시물의 ID와 텍스트가 포함됩니다(아래 예 참조).
{
   "id": "1334200897081987072",
   "text": "👀 X API v2가 처음이라면, 첫 요청을 보내는 방법을 단계별로 안내한 가이드를 확인해 보세요 https://t.co/4rZqThpSbp"
}
응답에 추가 필드(예: 사용자 정보, 컨텍스트 주석 등 추가 Tweet 필드)를 포함해 반환하려면, 요청에서 해당 필드를 명시적으로 지정해야 합니다. 방법은 fields 및 expansions 사용 가이드를 참고하세요. 선호하는 프로그래밍 언어로 이러한 게시물을 가져올 수도 있습니다. 사용자 Tweet 타임라인 및 사용자 멘션 타임라인 엔드포인트용 Python, Node(JavaScript), Java, Ruby 샘플 코드는 GitHub 저장소에서 확인하세요.

사용자의 게시물 탐색

사용자 Tweet 타임라인과 사용자 멘션 타임라인 엔드포인트로 게시물을 가져오는 방법을 알게 되면, 해당 사용자의 게시물을 탐색해 볼 수 있습니다. 예를 들어, 사용자의 멘션에 자주 등장하는 고유 명칭을 식별하고자 한다면 다음을 수행하세요: API 요청에서 Tweet 응답에 context_annotations 객체가 포함되도록 지정합니다:
curl --request GET 'https://api.x.com/2/users/USER_ID/mentions?tweet.fields=context_annotations' --header 'Authorization: Bearer XXXXXX'
응답에서 멘션에 명명된 엔터티가 포함되어 있는지 확인할 수 있습니다. 예시는 다음과 같습니다:
{
   "domain": {
       "id": "47",
       "name": "브랜드"
       "description": "브랜드 및 회사"
   },
   "entity": {
       "id": "783214",
       "name": "X"
   }
}
멘션에 어떤 인기 엔터티가 등장하는지 확인하려면 멘션의 각 게시물을 파싱하여 인기 엔터티의 빈도를 집계할 수 있습니다. 타임라인에서 미디어가 포함된 모든 게시물의 미리보기 이미지 URL을 살펴보려면 다음을 수행하세요. API 요청에서 tweet.media 필드에 preview_image_url을 포함하고, expansions에는 attachments.media_keys를 지정하세요.
curl --request GET 'https://api.x.com/2/users/2244994945/mentions?max_results=100&media.fields=preview_image_url&expansions=attachments.media_keys' --header 'Authorization: Bearer XXXXXX'
응답에서 아래와 같이 includes 객체의 preview_image_url을 확인할 수 있습니다:
{
   "<GLOSSARY>includes</GLOSSARY>": {
       "media": [
           {
               "media_key": "16_1334657439640121344",
               "preview_image_url": "https://pbs.twimg.com/tweet_video_thumb/EoWn3rqU8AAtFWL.jpg",
               "type": "animated_gif"
           }
       ]
   }
}
사용자의 게시물을 탐색하는 방법을 이해했다면, 다른 API와 서비스를 활용해 게시물을 더 다채롭게 다룰 수 있습니다. 아래에는 사용자 게시물 타임라인 및 사용자 멘션 타임라인 엔드포인트를 사용할 때 참고하기 좋은 자료를 정리했습니다.

리소스