메인 콘텐츠로 건너뛰기

전체 보관 아카이브 게시물 수 엔드포인트 시작하기

이 빠른 시작 가이드는 HTTP 요청을 보낼 수 있는 그래픽 도구인 Postman을 사용하여 전체 보관 아카이브 게시물 수 엔드포인트에 처음으로 요청을 보내는 방법을 안내합니다. 다양한 프로그래밍 언어의 샘플 코드를 보고 싶다면 X API v2 sample code GitHub 저장소를 방문하세요.

필수 준비 사항

전체 보관 아카이브 게시물 수 엔드포인트는 현재 Pro 또는 Enterprise 액세스 권한 보유자에게만 제공됩니다. 이 엔드포인트를 사용하려면 Pro 또는 Enterprise 액세스를 신청해야 합니다.액세스가 승인되는 것과 별도로, 요청 인증을 위해 keys and tokens 세트가 필요합니다. 다음 단계를 따라 이러한 키와 토큰을 생성할 수 있습니다.
  • 개발자 포털에서 Enterprise 액세스가 있는 Project로 이동한 뒤, 해당 Project에 연결된 Developer 앱이 있는지 확인하세요.
  • App의 “Keys and tokens” 페이지로 이동해 필요한 자격 증명을 생성하세요. 모든 자격 증명은 안전한 위치에 보관하세요.

전체 보관소 게시물 개수 요청을 구성하는 단계

1단계: 도구 또는 라이브러리로 시작하기 이 엔드포인트에 요청을 보내는 데 사용할 수 있는 다양한 도구, 코드 예제, 라이브러리가 있지만, 여기서는 과정을 단순화하기 위해 Postman을 사용합니다. X API v2 Postman 컬렉션을 환경에 불러오려면 다음 버튼을 클릭하세요: Postman에 X API v2 컬렉션을 불러온 후, Post counts > Full-archive Post counts 요청으로 이동합니다. 2단계: 요청 인증하기 X API에 정상적으로 요청하려면 권한을 확인해야 합니다. 이 엔드포인트에서는 OAuth 2.0 App-Only 인증 방식을 사용해 요청을 인증해야 합니다. Postman에 키와 토큰, 특히 App Access Token (App-only Bearer Token이라고도 함)을 추가해야 합니다. Postman 오른쪽 상단에서 “X API v2”라는 이름의 환경을 선택한 뒤, “initial value” 및 “current value” 필드에 키와 토큰을 추가하세요(환경 드롭다운 옆 눈 아이콘 클릭). 올바르게 설정했다면 이 변수는 요청의 Authorization 탭에 자동으로 반영됩니다.   3단계: 쿼리 생성하기 각 전체 보관소 게시물 개수 요청에는 단일 query가 필요합니다. 이 예제에서는 @XDevelopers 계정이 게시한 게시물과 일치하는 쿼리를 사용합니다. 이 쿼리에서는 from 연산자를 사용하고 값을 XDevelopers로 설정합니다(대소문자 구분 없음): from:XDevelopers Postman에서 “Params” 탭으로 이동하여 이 ID 또는 쉼표로 구분된 게시물 ID 문자열을 ids 파라미터의 “Value” 열에 입력하세요.  
KeyValueDescription
queryfrom:XDevelopers전체 보관소 게시물 개수 엔드포인트에 제출할 쿼리
4단계(선택): 세분성 및 기간 지정 3단계 후 ‘Send’ 버튼을 클릭하면 기본 전체 보관소 게시물 개수(최근 30일간 시간 단위)를 받게 됩니다. 일 단위의 전체 보관소 게시물 개수를 원하면 granularity 파라미터에 day 값을 추가해야 합니다. 30일 이전 기간의 게시물 개수를 원하면 원하는 값으로 start_time 및 end_time 파라미터를 지정해야 합니다.  Postman에서 “Params” 탭으로 이동하여 “Query Params” 표에 다음 key:value 쌍을 추가하세요:
KeyValueDescription
granularityday게시물 개수 결과의 세분성. 가능한 값은 day, hour, minute
start_time2021-05-01T00:00:00Z게시물이 제공될 가장 오래된 UTC 타임스탬프
end_time2021-06-01T00:00:00Z게시물이 제공될 가장 오래된 UTC 타임스탬프.
이제 “Send” 버튼 옆에 다음 URL이 표시되어야 합니다: https://api.x.com/2/tweets/counts/all?query=from%3AXDevelopers&start_time=2021-05-01T00:00:00Z&end_time=2021-06-01T00:00:00Z&granularity=day 5단계: 요청 전송 및 응답 검토 모든 설정을 완료했으면 “Send” 버튼을 클릭하세요. 그러면 다음과 유사한 응답을 받게 됩니다:
{
   "data": [
       {
           "end": "2021-05-02T00:00:00.000Z",
           "start": "2021-05-01T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-03T00:00:00.000Z",
           "start": "2021-05-02T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-04T00:00:00.000Z",
           "start": "2021-05-03T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-05T00:00:00.000Z",
           "start": "2021-05-04T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-06T00:00:00.000Z",
           "start": "2021-05-05T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-07T00:00:00.000Z",
           "start": "2021-05-06T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-08T00:00:00.000Z",
           "start": "2021-05-07T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-09T00:00:00.000Z",
           "start": "2021-05-08T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-10T00:00:00.000Z",
           "start": "2021-05-09T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-11T00:00:00.000Z",
           "start": "2021-05-10T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-12T00:00:00.000Z",
           "start": "2021-05-11T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-13T00:00:00.000Z",
           "start": "2021-05-12T00:00:00.000Z",
           "tweet_count": 6
       },
       {
           "end": "2021-05-14T00:00:00.000Z",
           "start": "2021-05-13T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-15T00:00:00.000Z",
           "start": "2021-05-14T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-16T00:00:00.000Z",
           "start": "2021-05-15T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-17T00:00:00.000Z",
           "start": "2021-05-16T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-18T00:00:00.000Z",
           "start": "2021-05-17T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-19T00:00:00.000Z",
           "start": "2021-05-18T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-20T00:00:00.000Z",
           "start": "2021-05-19T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-21T00:00:00.000Z",
           "start": "2021-05-20T00:00:00.000Z",
           "tweet_count": 8
       },
       {
           "end": "2021-05-22T00:00:00.000Z",
           "start": "2021-05-21T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-23T00:00:00.000Z",
           "start": "2021-05-22T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-24T00:00:00.000Z",
           "start": "2021-05-23T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-25T00:00:00.000Z",
           "start": "2021-05-24T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-26T00:00:00.000Z",
           "start": "2021-05-25T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-27T00:00:00.000Z",
           "start": "2021-05-26T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-28T00:00:00.000Z",
           "start": "2021-05-27T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-29T00:00:00.000Z",
           "start": "2021-05-28T00:00:00.000Z",
           "tweet_count": 2
       },
       {
           "end": "2021-05-30T00:00:00.000Z",
           "start": "2021-05-29T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-31T00:00:00.000Z",
           "start": "2021-05-30T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-06-01T00:00:00.000Z",
           "start": "2021-05-31T00:00:00.000Z",
           "tweet_count": 0
       }
   ],
   "meta": {
       "total_tweet_count": 22
   }
}
6단계: 결과 페이지네이션 하기 응답의 ‘meta’ 객체에 next_token이 포함되어 있다면, 그 값을 next_token 쿼리 매개변수로 전달할 수 있습니다.
KeyValueDescription
next_token이전 요청의 meta 객체에서 가져온 next_token 값을 여기에 추가합니다.최신 요청에서 나머지 결과가 반환되지 않은 경우 meta 객체에 next_token이 포함됩니다. 해당 필드의 값을 가져와 다음 요청에서 next_token 매개변수의 값으로 설정하고, 다른 모든 요청 매개변수는 동일하게 유지합니다.
적절한 next_token 값을 설정했다면 “Send” 버튼을 눌러 다음 페이지의 결과를 받습니다.