[python] 인증된 요청 보내기

인터넷에서 API를 사용하는 경우, 인증된 요청을 보내야하는 경우가 많습니다. 이는 API 서비스 제공자가 사용자를 식별하고 권한을 부여하는 기능을 제공하기 위해 필요합니다. Python을 사용하여 인증된 요청을 보내는 방법을 알아보겠습니다.

Requests 라이브러리 설치

먼저 requests 라이브러리를 설치해야 합니다. 이 라이브러리는 HTTP 요청을 보내기 위한 강력한 도구입니다. 다음 명령을 사용하여 requests 라이브러리를 설치하세요.

pip install requests

기본적인 인증

가장 간단한 방법은 기본적인 인증을 사용하는 것입니다. 이 때는 요청을 보내기 전에 사용자 이름과 비밀번호를 인코딩하여 Authorization 헤더에 첨부해야 합니다. 다음은 기본적인 인증을 사용하여 요청을 보내는 예제 코드입니다.

import requests
from requests.auth import HTTPBasicAuth

username = "사용자 이름"
password = "비밀번호"
url = "API 엔드포인트 URL"

response = requests.get(url, auth=HTTPBasicAuth(username, password))

print(response.json())

토큰 기반 인증

다른 방식으로는 토큰 기반 인증을 사용하는 것입니다. 이 경우, 인증된 사용자는 토큰을 발급받아 API 요청에 첨부해야 합니다. 다음은 토큰 기반 인증을 사용하여 요청을 보내는 예제 코드입니다.

import requests

token = "인증 토큰"
url = "API 엔드포인트 URL"

headers = {
    "Authorization": f"Bearer {token}"
}

response = requests.get(url, headers=headers)

print(response.json())

위의 코드에서 인증 토큰 부분은 발급받은 토큰을 입력해야 합니다.

OAuth 인증

OAuth는 주로 외부 서비스와 연동하여 사용되는 인증 방식입니다. OAuth를 사용하면 사용자의 동의를 거쳐 API를 호출할 수 있습니다. OAuth 인증의 경우, 전용 라이브러리를 사용하는 것이 좋습니다. 예를 들어 oauthlibrequests_oauthlib 라이브러리는 OAuth 인증을 쉽게 사용할 수 있는 도구입니다.

import requests
from requests_oauthlib import OAuth1

consumer_key = "소비자 키"
consumer_secret = "소비자 시크릿"
access_token = "접근 토큰"
access_token_secret = "접근 토큰 시크릿"
url = "API 엔드포인트 URL"

auth = OAuth1(consumer_key, consumer_secret, access_token, access_token_secret)

response = requests.get(url, auth=auth)

print(response.json())

위의 코드에서 소비자 키, 소비자 시크릿, 접근 토큰, 접근 토큰 시크릿 부분은 해당 정보를 입력해야 합니다. 이는 서비스 제공자로부터 발급받은 값을 사용하면 됩니다.

마무리

이상으로 Python을 사용하여 인증된 요청을 보내는 방법을 알아보았습니다. 각각의 인증 방식은 서비스 제공자의 요구에 맞게 선택하여 사용해야 합니다. 필요에 따라 인증 방식을 조합하여 사용할 수도 있습니다. API 서비스 제공자의 문서를 참조하여 적절한 인증 방식을 선택하세요.

참고 자료: