App only authentication and OAuth 2.0 Bearer Token
- 사용자 타임라인 가져오기
- 임의 계정의 친구 및 팔로워에 접근
- 리스트 리소스에 접근
- Tweet 검색
- Tweet 또는 기타 리소스 게시
- 사용자 검색
- 모든 geo 엔드포인트 사용
- 다이렉트 메시지 또는 계정 자격 증명에 접근
- 사용자의 이메일 주소 가져오기
인증 플로우
- 애플리케이션은 consumer key와 secret을 특정 방식으로 인코딩하여 자격 증명 세트를 생성합니다.
- 애플리케이션은 POST oauth2/token 엔드포인트에 요청을 보내 이러한 자격 증명을 App only Access Token으로 교환합니다.
- REST API에 액세스할 때 애플리케이션은 App only Access Token을 사용해 인증을 수행합니다.

애플리케이션 전용 인증에 대해
애플리케이션 전용 요청 보내기
- 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이어야 합니다.
Authorization 헤더는 가독성을 위해 줄바꿈되었습니다):
token_type 키에 연결된 값이 bearer인지 확인해야 합니다. access_token 키에 연결된 값이 App only Access Token (Bearer 토큰)입니다.
하나의 App only Access Token은 한 시점에 하나의 애플리케이션에 대해서만 유효합니다. 동일한 자격 증명으로 /oauth2/token에 또 다른 요청을 보내면, 해당 토큰이 무효화될 때까지 동일한 토큰을 반환합니다.
3단계: App only Access Token (Bearer 토큰)으로 API 요청 인증하기
App only Access Token (Bearer 토큰)은 애플리케이션 전용 인증을 지원하는 API 엔드포인트에 대한 요청을 보내는 데 사용할 수 있습니다. App Access Token을 사용하려면 일반 HTTPS 요청을 구성하고, Authorization 헤더에 Bearer <2단계에서 발급받은 base64 bearer token 값>. Signing is not required. 값을 포함시키면 됩니다.
요청 예시 (Authorization 헤더는 보기 쉽게 줄바꿈되었습니다):
일반적인 오류 사례
- 잘못된 요청으로 App only Access Token (Bearer 토큰)을 발급받으려는 경우(예:
grant_type=client_credentials를 누락한 경우). - 잘못되었거나 만료된 앱 자격 증명으로 App only Access Token (Bearer 토큰)을 발급받거나 취소하려는 경우.
- 잘못되었거나 이미 취소된 App only Access Token (Bearer 토큰)을 다시 무효화하려는 경우.
- 짧은 시간 동안 App only Access Token (Bearer 토큰)을 지나치게 자주 발급받으려는 경우.
API 요청에 잘못된 App 전용 Access Token(Bearer 토큰)이 포함된 경우
application-only 인증을 지원하지 않는 엔드포인트에서 App only Access Token (Bearer 토큰)을 사용하는 경우
statuses/home_timeline)에 App only Access Token (Bearer 토큰)으로 요청하면 다음과 같은 응답이 반환됩니다: