메인 콘텐츠로 건너뛰기

소개

recent search endpoint는 최근 7일 이내에 게시된 포스트만 조회할 수 있지만, 사용자 포스트 타임라인 엔드포인트와 사용자 멘션 타임라인 엔드포인트를 사용하면 user ID를 사용하는 권한 있는 사용자의 최근 7일보다 더 이전에 작성된 포스트와 멘션도 조회할 수 있습니다. 개발자는 이러한 엔드포인트를 사용하여 사용자의 타임라인이나 멘션에 포함된 포스트의 토픽, 엔터티, 감성(senti­ment)을 분석할 수 있습니다. 이 튜토리얼에서는 user Tweet 타임라인 엔드포인트와 사용자 멘션 타임라인 엔드포인트를 사용하여 사용자의 포스트와 멘션을 탐색하는 방법을 설명합니다.  

사전 준비 사항

  • user Tweet 타임라인과 user mention 타임라인 엔드포인트를 사용하려면 유효한 개발자 계정이 필요합니다. 
  • Project가 생성되어 있어야 합니다.
  • 개발자 계정에 가입하고, new Developer Console 경험을 활성화해야 합니다. 
  • Developer Console에서 생성한 Project에 연결된 개발자 App의 활성 키와 토큰이 있어야 합니다.
  • X Developer Console의 App에서 발급된 Bearer 토큰이 필요합니다.
  • 승인된 개발자 계정이 없는 경우 신청할 수 있습니다.

승인된 개발자 계정

아직 개발자 계정이 없다면 개발자 계정을 신청할 수 있습니다.

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

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

user Tweet 타임라인 및 user mention 타임라인 엔드포인트에서 사용할 사용자 ID를 가져오는 방법

user Tweet 타임라인 및 user mention 타임라인 엔드포인트를 사용하면 사용자 ID를 통해 포스트를 가져올 수 있습니다. 사용자 이름으로부터 사용자 ID를 얻으려면 새로운 user lookup endpoint v2를 사용할 수 있습니다. USER_NAME을 원하는 사용자 이름으로, XXXX를 위에서 발급받은 자신의 Bearer 토큰으로 각각 교체하십시오.
  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"
   }
}

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

사용자의 Tweet 타임라인을 가져오려면 터미널에서 다음 curl 명령을 실행하세요(필요한 사용자 id 값으로 USER_ID를, 위에서 발급받은 자신의 Bearer 토큰으로 XXXX를 각각 바꿔서 사용하세요).
curl --request GET 'https://api.x.com/2/users/USER_ID/tweets' --header 'Authorization: Bearer XXXXXX'
이러한 요청에 대한 JSON 응답에는 기본적으로 해당 포스트의 ID와 텍스트가 포함됩니다(아래 예시 참조).
{
   "id": "1334200897081987072",
   "text": "👀 If you are new to the X API v2, check out this step-by-step guide to making your first request https://t.co/4rZqThpSbp"
}
응답의 일부로 추가 필드(예: 사용자 정보, context annotations와 같은 추가 Tweet 필드 등)를 포함해 반환받고 싶다면, 해당 필드를 응답에 명시적으로 지정해야 합니다. 자세한 방법은 fields 및 expansions 사용 방법 가이드를 참고하세요. 원하는 프로그래밍 언어를 사용하여 이러한 포스트를 가져올 수도 있습니다. Python, Node.js (JavaScript), Java, Ruby로 작성된 사용자 Tweet 타임라인 및 사용자 멘션 타임라인 엔드포인트용 샘플 코드는 GitHub 저장소에서 확인할 수 있습니다.

사용자의 포스트 탐색

user Tweet timeline 및 user mention timeline 엔드포인트를 사용해 포스트를 가져오는 방법을 알고 있다면, 이제 해당 사용자의 포스트를 더 자세히 탐색해 볼 수 있습니다. 예를 들어, 사용자의 멘션에 공통으로 등장하는 명명 개체(named entity)를 식별하고 싶다면 다음을 수행할 수 있습니다. 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": "Brand",
       "description": "브랜드 및 회사"
   },
   "entity": {
       "id": "783214",
       "name": "X"
   }
}
멘션에 어떤 인기 엔티티가 포함되어 있는지 확인하려면, 멘션에 포함된 각 Tweet을 파싱하여 인기 엔티티의 개수를 집계해 둘 수 있습니다. 타임라인에서 미디어가 포함된 모든 포스트에 대해 미리보기 이미지 URL을 확인하고 싶다면, 다음과 같이 할 수 있습니다. API 요청에서 tweet.media 필드에 preview_image_url을 포함하도록 지정하고, attachments.media_keys expansions를 설정합니다.
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을 확인할 수 있습니다:
{
   "includes": {
       "media": [
           {
               "media_key": "16_1334657439640121344",
               "preview_image_url": "https://pbs.twimg.com/tweet_video_thumb/EoWn3rqU8AAtFWL.jpg",
               "type": "animated_gif"
           }
       ]
   }
}
사용자 포스트를 탐색하는 방법을 이해했다면, 다른 API와 서비스를 사용해 포스트를 보다 다양하게 활용할 수 있습니다. 아래에는 사용자 Tweet 타임라인 엔드포인트와 사용자 멘션 타임라인 엔드포인트를 사용할 때 참고하면 좋은 리소스를 정리했습니다.

리소스