Signature 생성
이 페이지에서는 HTTP 요청에 대한 OAuth 1.0a HMAC-SHA1 서명을 생성하는 방법을 설명합니다. 이 서명은 요청 승인에 설명된 대로 승인된 요청의 일부로 X API에 전달하기에 적합합니다. 서명을 시연하는 데 사용된 요청은 https://api.x.com/1.1/statuses/update.json에 대한 POST입니다. 원시 요청은 다음과 같습니다:
base URL은 쿼리 문자열이나 해시 매개변수를 제외한 요청이 지시되는 URL입니다. 여기서 올바른 프로토콜을 사용하는 것이 중요하므로 URL의 “https://” 부분이 API로 전송된 실제 요청과 일치하는지 확인하세요.
매개변수 수집
다음으로, 요청에 포함된 모든 매개변수를 수집합니다. 이러한 추가 매개변수에는 두 가지 위치가 있습니다 - URL(쿼리 문자열의 일부) 및 요청 본문. 예시 요청에는 두 위치 모두에 단일 매개변수가 포함되어 있습니다:
이 값들은 나중에 사용될 단일 문자열로 인코딩되어야 합니다. 문자열을 구성하는 프로세스는 매우 구체적입니다:
- 서명될 모든 키와 값을 퍼센트 인코딩합니다.
- 인코딩된 키 [2]를 기준으로 매개변수 목록을 알파벳순으로 [1] 정렬합니다.
- 각 키/값 쌍에 대해:
- 인코딩된 키를 출력 문자열에 추가합니다.
- ’=’ 문자를 출력 문자열에 추가합니다.
- 인코딩된 값을 출력 문자열에 추가합니다.
- 남은 키/값 쌍이 더 있는 경우 ’&’ 문자를 출력 문자열에 추가합니다.
Signature base string 생성
지금까지 수집한 세 개의 값은 서명이 생성될 단일 문자열로 결합되어야 합니다. 이를 OAuth 명세에서는 signature base string이라고 합니다. HTTP 메서드, base URL 및 parameter string을 단일 문자열로 인코딩하려면:- HTTP 메서드를 대문자로 변환하고 출력 문자열을 이 값과 동일하게 설정합니다.
- ’&’ 문자를 출력 문자열에 추가합니다.
- URL을 퍼센트 인코딩하고 출력 문자열에 추가합니다.
- ’&’ 문자를 출력 문자열에 추가합니다.
- parameter string을 퍼센트 인코딩하고 출력 문자열에 추가합니다.
서명 키 얻기
수집해야 할 마지막 데이터는 요청을 하는 X 앱과 요청이 대신하는 사용자를 식별하는 시크릿입니다. 이러한 값은 매우 민감하며 절대 아무와 공유해서는 안 된다는 점에 유의하는 것이 매우 중요합니다. X에 앱을 식별하는 값은 consumer secret이라고 하며 Developer Console에서 앱 세부 정보 페이지를 통해 찾을 수 있습니다. 이 값은 X 앱이 보내는 모든 요청에 대해 동일합니다.
애플리케이션이 대신하여 작동하는 계정을 식별하는 값을 OAuth token secret이라고 합니다. 이 값은 여러 가지 방법으로 얻을 수 있으며, 모두 access token 얻기에 설명되어 있습니다.
다시 한번, 이러한 값을 애플리케이션에 비공개로 유지하는 것이 매우 중요합니다. 값이 유출되었다고 느껴진다면 토큰을 재생성하세요(이 페이지의 토큰은 실제 요청에 대해 유효하지 않은 것으로 표시되어 있습니다).
이 두 값을 결합하여 서명을 생성하는 데 사용될 서명 키를 만들어야 합니다. 서명 키는 단순히 퍼센트 인코딩된 token secret입니다:
request token 얻기와 같이 token secret이 아직 알려지지 않은 일부 흐름이 있습니다. 이 경우 서명 키는 퍼센트 인코딩된 consumer secret 뒤에 앰퍼샌드 문자 ’&‘로 구성되어야 합니다.