앱 전용 인증 및 OAuth 2.0 베어러 토큰
- 사용자 타임라인 가져오기
- 모든 계정의 친구 및 팔로워 액세스
- 리스트 리소스 액세스
- 트윗 검색
- 트윗 또는 기타 리소스 게시
- 사용자 검색
- 모든 지오 엔드포인트 사용
- 다이렉트 메시지 또는 계정 자격 증명 액세스
- 사용자의 이메일 주소 가져오기
인증 플로우
- 애플리케이션이 consumer key와 secret을 특수 방식으로 인코딩해 자격 증명 세트를 만듭니다.
- 애플리케이션이 POST oauth2/token 엔드포인트로 요청을 보내 해당 자격 증명을 앱 전용 액세스 토큰으로 교환합니다.
- REST API에 접근할 때 애플리케이션은 앱 전용 액세스 토큰으로 인증합니다.

앱 전용 인증에 대해
앱 전용 요청 보내기
- RFC 1738에 따라 consumer key와 consumer secret을 URL 인코딩합니다. 작성 시점 기준으로는 이 작업이 실제로 consumer key와 secret을 변경하지 않지만, 향후 해당 값의 형식이 바뀔 가능성에 대비해 이 단계를 수행해야 합니다.
- 인코딩된 consumer key, 콜론 문자 ”:” 및 인코딩된 consumer secret을 하나의 문자열로 연결합니다.
- 이전 단계의 문자열을 Base64 인코딩합니다.
| Consumer key | xvz1evFS4wEEPTGEFPHBog |
| Consumer secret | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| RFC 1738 encoded consumer key (does not change) | xvz1evFS4wEEPTGEFPHBog |
| RFC 1738 encoded consumer secret (does not change) | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Bearer Token credentials | xvz1evFS4wEEPTGEFPHBog:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Base64 encoded Bearer Token credentials | :: eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw== |
- 요청은 HTTP POST 요청이어야 합니다.
- 요청에는
Authorization헤더가 포함되어야 하며, 값은Basic <base64 encoded value from step 1>.이어야 합니다. - 요청에는
Content-Type헤더가 포함되어야 하며, 값은application/x-www-form-urlencoded;charset=UTF-8.이어야 합니다. - 요청 본문은
grant_type=client_credentials이어야 합니다.
token_type 키에 해당하는 값이 bearer인지 확인해야 합니다. access_token 키에 해당하는 값은 앱 전용 액세스 토큰(베어러 토큰)입니다.
앱 전용 액세스 토큰은 한 시점에 하나의 애플리케이션에만 유효합니다. 동일한 자격 증명으로 /oauth2/token에 다시 요청하면 토큰이 무효화될 때까지 동일한 토큰이 반환됩니다.
3단계: 앱 전용 액세스 토큰(베어러 토큰)으로 API 요청 인증하기
앱 전용 액세스 토큰(베어러 토큰)은 애플리케이션 전용 인증을 지원하는 API 엔드포인트에 요청을 보내는 데 사용할 수 있습니다. 앱 액세스 토큰을 사용하려면 일반적인 HTTPS 요청을 구성하고, Authorization 헤더에 Bearer <base64 bearer token value from step 2>. Signing is not required. 값을 포함하세요.
예시 요청(Authorization 헤더는 가독성을 위해 줄바꿈됨):
일반적인 오류 사례
- 잘못된 요청으로 앱 전용 액세스 토큰(베어러 토큰)을 발급받음(예:
grant_type=client_credentials를 누락). - 올바르지 않거나 만료된 앱 자격 증명으로 앱 전용 액세스 토큰(베어러 토큰)을 발급받거나 취소함.
- 올바르지 않거나 이미 취소된 앱 전용 액세스 토큰(베어러 토큰)을 무효화함.
- 짧은 시간 내에 앱 전용 액세스 토큰(베어러 토큰)을 과도하게 발급받음.
API 요청에 유효하지 않은 앱 전용 액세스 토큰(베어러 토큰)이 포함됨
애플리케이션 전용 인증을 지원하지 않는 엔드포인트에서 앱 전용 액세스 토큰(베어러 토큰) 사용
statuses/home_timeline)에 앱 전용 액세스 토큰(베어러 토큰)으로 요청하면 다음과 같은 결과가 발생합니다: