메인 콘텐츠로 건너뛰기

OAuth 1.0a

목적메서드
3-legged OAuth 플로우의 1단계 및 X로 로그인
Consumer 애플리케이션이 사용자 승인을 요청하기 위한 OAuth Request Token을 획득하도록 합니다.
POST oauth/request_token
3-legged OAuth 플로우의 2단계 및 X로 로그인
Consumer 애플리케이션이 사용자 승인을 요청하기 위해 OAuth Request Token을 사용하도록 합니다.
GET oauth/authenticate
3-legged OAuth 플로우의 2단계 및 X로 로그인
Consumer 애플리케이션이 사용자 승인을 요청하기 위해 OAuth Request Token을 사용하도록 합니다.
GET oauth/authorize
3-legged OAuth 플로우의 3단계 및 X로 로그인
Consumer 애플리케이션이 OAuth Request Token을 OAuth 액세스 토큰으로 교환하도록 합니다.
POST oauth/access_token
등록된 애플리케이션이 발급된 OAuth 액세스 토큰을 무효화하도록 합니다.POST oauth/invalidate_token

OAuth 2.0 베어러 토큰

목적방법
등록된 앱이 사용자 컨텍스트 없이 앱을 대신해 API 요청을 수행할 수 있도록, OAuth 2 앱 전용 베어러 토큰을 발급받게 합니다.POST oauth2/token
등록된 앱이 발급된 OAuth 2 앱 전용 베어러 토큰을 취소(무효화)할 수 있게 합니다.POST oauth2/invalidate_token

POST oauth/request_token

Consumer 애플리케이션이 사용자 승인을 요청하기 위한 OAuth 요청 토큰을 획득할 수 있도록 합니다. 이 메서드는 OAuth 1.0 인증 플로우섹션 6.1에 해당합니다. 모든 OAuth 인증 단계에서 HTTPS 사용이 필수입니다. 사용 안내: oauth_nonce에는 ASCII 값만 허용됩니다. 리소스 URL https://api.x.com/oauth/request_token 리소스 정보
응답 형식JSON
인증 필요?아니요
레이트 제한?
매개변수
이름필수 여부설명예시
oauth_callbackrequiredOAuth 1.0a 규격을 준수하기 위해 이 매개변수는 필수입니다. 여기 지정한 값은 사용자가 애플리케이션의 계정 접근을 승인할 경우 리디렉션될 URL로 사용됩니다. 대역 외 PIN 모드의 경우 oob로 설정하세요. 데스크톱/모바일 애플리케이션에서 사용할 사용자 지정 콜백을 지정하는 방법이기도 합니다. 사전 등록된 콜백이 있더라도 이 단계에서는 항상 oauth_callback을 전송하세요.

이 엔드포인트와 함께 사용하는 모든 콜백 URL은 developer.x.com의 앱 설정에서 구성되어야 합니다.
http://themattharris.local/auth.php twitterclient://callback
x_auth_access_typeoptional애플리케이션이 사용자 계정에 요청하는 액세스 수준을 재정의합니다. 지원되는 값은 read 또는 write입니다. 이 매개변수는 개발자가 읽기/쓰기 애플리케이션을 등록했더라도 상황에 따라 읽기 전용 액세스를 요청할 수 있도록 하기 위한 것입니다.
콜백 URL 승인 방법은 이 페이지에서 자세히 알아보세요. 참고: developer.x.com에서 X 계정으로 로그인한 상태라면 X 앱 대시보드를 통해 기존 X 앱을 조회하고 수정할 수 있습니다. 예시 요청 Request URL: POST https://api.x.com/oauth/request_token Request POST Body: N/A Authorization Header: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0" Response: oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik&oauth_token_secret=Kd75W4OQfb2oJTV0vzGzeXftVAwgMnEK9MumzYcM&oauth_callback_confirmed=true

GET oauth/authorize

Consumer 애플리케이션이 OAuth Request Token을 사용해 사용자 승인을 요청할 수 있도록 합니다. 이 메서드는 OAuth 1.0 인증 플로우섹션 6.2를 충족합니다. 데스크톱 애플리케이션은 반드시 이 메서드를 사용해야 하며(GET oauth / authenticate는 사용할 수 없음). 사용 안내: oauth_callback은 이 메서드로는 절대 전송되지 않습니다. 대신 POST oauth / request_token에 제공하십시오. 리소스 URL https://api.x.com/oauth/authorize 리소스 정보
응답 형식JSON
인증 필요?
속도 제한 적용?
매개변수
이름필수 여부설명기본값예시
force_login선택 사항올바른 사용자 계정을 승인하기 위해 사용자가 자격 증명을 다시 입력하도록 강제합니다.
screen_name선택 사항OAuth 로그인 화면의 사용자 이름 입력란을 지정한 값으로 미리 채웁니다.
요청 예시 웹 브라우저에서 oauth/authorize 단계로 사용자를 이동시키고, oauth_token 매개변수를 포함하세요: https://api.x.com/oauth/authorize?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

GET oauth/authenticate

Consumer 애플리케이션이 OAuth request_token을 사용해 사용자 승인을 요청할 수 있도록 합니다. 이 메서드는 콜백 인증 플로를 사용하는 애플리케이션의 경우 OAuth 1.0 인증 플로섹션 6.2를 대체합니다. force_login 매개변수가 true로 설정되지 않은 한 현재 로그인한 사용자를 액세스 승인 계정으로 사용합니다. 이 메서드는 GET oauth/authorize와 달리, 사용자가 이미 애플리케이션에 권한을 부여한 경우 재승인 없이 리디렉션이 이루어집니다. 이 동작을 위해서는 application record에서 Use Sign in with X 설정을 활성화해야 합니다. 리소스 URL https://api.x.com/oauth/authenticate 리소스 정보
응답 형식JSON
인증 필요?
레이트 리밋 적용?
매개변수
이름필수 여부설명기본값예시
force_login선택올바른 사용자 계정이 승인되도록 사용자가 자격 증명을 다시 입력하도록 강제합니다.true
screen_name선택OAuth 로그인 화면의 사용자 이름 입력란을 지정한 값으로 미리 채웁니다.
예시 요청 웹 브라우저에서 사용자를 oauth/authenticate 단계로 보내며, oauth_token 매개변수를 포함하세요: https://api.x.com/oauth/authenticate?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

POST oauth/access_token

Consumer 애플리케이션이 OAuth Request Token을 OAuth Access Token으로 교환할 수 있도록 합니다. 이 메서드는 OAuth 1.0 인증 플로우섹션 6.3을 충족합니다. 리소스 URL https://api.x.com/oauth/access_token 리소스 정보
응답 형식JSON
인증 필요
레이트 제한
매개변수
이름필수설명기본값예시
oauth_tokenrequired여기의 oauth_token은 request_token 단계에서 반환된 oauth_token과 동일해야 합니다.
oauth_verifierrequiredOAuth 웹 플로우를 사용하는 경우, 이 매개변수를 콜백 URL에서 반환된 oauth_verifier의 값으로 설정하세요. Out-of-band OAuth를 사용하는 경우, 이 값을 PIN 코드로 설정하세요. OAuth 1.0a 준수를 위해 이 매개변수는 필수입니다. OAuth 1.0a는 엄격히 적용되며 oauth_verifier를 사용하지 않는 애플리케이션은 OAuth 플로우를 완료하지 못합니다.
예제 요청 POST https://api.x.com/oauth/access_token?oauth_token=qLBVyoAAAAAAx72QAAATZxQWU6P&oauth_verifier=ghLM8lYmAxDbaqL912RZSRjCCEXKDIzx PIN 기반의 경우 POST https://api.x.com/oauth/access_token?oauth_token=9Npq8AAAAAAAx72QBRABZ4DAfY9&oauth_verifier=4868795 예제 응답 oauth_token=6253282-eWudHldSbIaelX7swmsiHImEL4KinwaGloHANdrY&oauth_token_secret=2EEfA6BG5ly3sR3XjE0IBSnlQu4ZrUzPiYTmrkVU&user_id=6253282&screen_name=xapi

POST oauth/invalidate_token

등록된 애플리케이션이 클라이언트 자격 증명을 제시하여 발급된 OAuth access_token을 취소할 수 있습니다. access_token이 무효화되면 새로 생성할 경우 다른 액세스 토큰이 발급되며, 무효화된 토큰은 더 이상 사용할 수 없습니다. 리소스 URL https://api.x.com/1.1/oauth/invalidate_token 리소스 정보
응답 형식JSON
인증 필요 여부예 - 무효화하려는 액세스 토큰을 가진 사용자 컨텍스트
속도 제한 여부
요청 예시
        curl --request POST
          --url 'https://api.x.com/1.1/oauth/invalidate_token.json'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
응답 예시
        HTTP/1.1 200 OK
        Content-Type: application/json; charset=utf-8
        Content-Length: 127
        ...

        {"access_token":"ACCESS_TOKEN"}
토큰이 무효화된 후의 오류 응답 예시
        HTTP/1.1 401 Authorization Required
        ...

        {"errors": [{
          "code": 89,
          "message": "유효하지 않거나 만료된 토큰입니다."}
        ]}

POST oauth2/token

등록된 애플리케이션이 OAuth 2 베어러 토큰을 획득할 수 있도록 합니다. 이 토큰은 사용자 컨텍스트 없이 애플리케이션 자체를 대신해 API 요청을 수행하는 데 사용할 수 있습니다. 이를 애플리케이션 전용 인증이라고 합니다. 베어러 토큰은 oauth2/invalidate_token으로 무효화할 수 있습니다. 베어러 토큰이 무효화되면 새로 생성을 시도할 때 다른 베어러 토큰이 발급되며, 이전 토큰은 더 이상 사용할 수 없습니다. 애플리케이션에는 동시에 하나의 베어러 토큰만 존재할 수 있으며, 이 메서드에 대한 반복 요청은 무효화되기 전까지 이미 존재하는 동일한 토큰을 반환합니다. 성공적인 응답에는 부여된 베어러 토큰을 설명하는 JSON 구조가 포함됩니다. 이 메서드로 받은 토큰은 캐시해야 합니다. 너무 자주 시도하면 코드 99와 함께 HTTP 403으로 요청이 거부됩니다. 리소스 URL https://api.x.com/oauth2/token 리소스 정보
응답 형식JSON
인증 필요?예 - 사용자 이름에는 API 키, 비밀번호에는 API 키 시크릿을 사용하는 기본 인증
레이트 제한?
매개변수
이름필수설명기본값예시
grant_typerequired애플리케이션이 요청하는 grant 유형을 지정합니다. 현재는 client_credentials만 허용됩니다. 자세한 내용은 애플리케이션 전용 인증을 참조하세요.client_credentials
요청 예시
    POST /oauth2/token HTTP/1.1
    Host: api.x.com
    User-Agent: My X App v1.0.23
    Authorization: Basic eHZ6MWV2R ... o4OERSZHlPZw==
    Content-Type: application/x-www-form-urlencoded;charset=UTF-8
    Content-Length: 29
    Accept-Encoding: gzip

    grant_type=client_credentials
응답 예시:
    HTTP/1.1 200 OK
    Status: 200 OK
    Content-Type: application/json; charset=utf-8
    ...
    Content-Encoding: gzip
    Content-Length: 140

    {"token_type":"bearer","access_token":"AAAA%2FAAA%3DAAAAAAAA"}

POST oauth2/invalidate_token

등록된 애플리케이션이 클라이언트 자격 증명을 제시하여 발급된 OAuth 2.0 베어러 토큰을 취소(무효화)할 수 있도록 합니다. 베어러 토큰이 무효화되면 새로 생성되는 토큰은 이전과 다른 값이 되며, 무효화된 토큰은 더 이상 사용할 수 없습니다. 성공한 응답에는 무효화된 베어러 토큰을 설명하는 JSON 구조가 포함됩니다. 리소스 URL https://api.x.com/oauth2/invalidate_token 리소스 정보
응답 형식JSON
인증 필요 여부예 - 애플리케이션의 consumer API 키와 애플리케이션 소유자의 액세스 토큰 및 액세스 토큰 시크릿을 사용하는 OAuth 1.0a
레이트 제한 여부
매개변수
이름필수 여부설명
access_token필수무효화하려는 베어러 토큰의 값
예시 요청
        curl --request POST
          --url 'https://api.x.com/oauth2/invalidate_token?access_token=AAAA%2FAAA%3DAAAAAAAA'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
예시 응답
         상태: 200 OK
         Content-Type: application/json; charset=utf-8
         Content-Length: 135
         ...
       {
        "access_token": "AAAA%2FAAA%3DAAAAAAAA"
        }