요청 승인
이 문서의 목적은 X API에 승인된 요청을 보내기 위해 HTTP 요청을 수정하는 방법을 보여주는 것입니다. X의 모든 API는 HTTP 프로토콜을 기반으로 합니다. 이는 X의 API를 사용하는 소프트웨어가 구조화된 메시지 시리즈를 X 서버로 전송한다는 것을 의미합니다. 예를 들어, “Hello Ladies + Gentlemen, a signed OAuth request!” 텍스트를 Tweet으로 게시하는 요청은 다음과 같이 보일 것입니다:- 어떤 애플리케이션이 요청을 하고 있는지
- 요청이 어떤 사용자를 대신하여 게시되고 있는지
- 사용자가 애플리케이션에 자신을 대신하여 게시할 수 있는 권한을 부여했는지 여부
- 요청이 전송 중에 제3자에 의해 조작되었는지 여부
Nonce
oauth_nonce 매개변수는 애플리케이션이 각 고유 요청에 대해 생성해야 하는 고유 토큰입니다. X는 이 값을 사용하여 요청이 여러 번 제출되었는지 확인합니다. 이 요청의 값은 32바이트의 무작위 데이터를 base64 인코딩하고 모든 비단어 문자를 제거하여 생성되었지만, 상대적으로 무작위한 영숫자 문자열을 생성하는 어떤 접근 방식도 여기에 적합합니다.
Signature
oauth_signature 매개변수는 다른 모든 요청 매개변수와 두 개의 시크릿 값을 서명 알고리즘에 실행하여 생성되는 값을 포함합니다. 서명의 목적은 X가 요청이 전송 중에 수정되지 않았는지 확인하고, 요청을 보내는 애플리케이션을 확인하며, 애플리케이션이 사용자 계정과 상호 작용할 수 있는 권한을 가지고 있는지 확인할 수 있도록 하기 위함입니다.
이 요청에 대한 oauth_signature를 계산하는 프로세스는 Signature 생성에 설명되어 있습니다.
Signature method
X에서 사용하는 oauth_signature_method는 HMAC-SHA1입니다. 이 값은 X API에 전송되는 모든 승인된 요청에 사용되어야 합니다.
Timestamp
oauth_timestamp 매개변수는 요청이 생성된 시간을 나타냅니다. 이 값은 요청이 생성된 시점의 Unix epoch 이후 초 수여야 하며, 대부분의 프로그래밍 언어에서 쉽게 생성될 수 있어야 합니다. X는 과거에 너무 오래 전에 생성된 요청을 거부하므로 요청을 생성하는 컴퓨터의 시계를 NTP와 동기화하는 것이 중요합니다.
Token
oauth_token 매개변수는 일반적으로 사용자가 애플리케이션에 자신의 계정 액세스를 공유할 수 있는 권한을 나타냅니다. 이 값이 전달되지 않거나 다른 형태의 토큰인 몇 가지 인증 요청이 있지만, 이는 access token 얻기에서 자세히 다룹니다. 대부분의 일반적인 요청의 경우 access token이라고 부르는 것을 사용합니다.
Developer Console의 X 앱 설정 페이지에서 계정에 대한 유효한 access token을 생성할 수 있습니다.
Version
oauth_version 매개변수는 X API에 전송되는 모든 요청에 대해 항상 1.0이어야 합니다.
헤더 문자열 구성하기
헤더 문자열을 구성하려면 DST라는 이름의 문자열에 쓴다고 상상해보세요.- “OAuth ” 문자열(끝 공백 포함)을 DST에 추가합니다.
- 위에 나열된 7개 매개변수의 각 키/값 쌍에 대해: