일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스
- SQL
- 스파르타내일배움캠프
- 리그오브레전드
- 알고리즘
- java
- git
- sort
- Riot
- greedy
- 코딩테스트준비
- 스파르타내일배움캠프TIL
- Django
- 탐욕알고리즘
- lol
- 파이썬
- programmers
- 그리디
- 백준
- 장고
- 롤
- API
- 내일배움캠프
- drf
- 자바
- github
- 라이엇
- 코딩테스트
- 그리디알고리즘
- python
- Today
- Total
Lina's Toolbox
[RIOT API] 2. 유저이름, 유저태그로 puuid 발급 (account-v1) 본문
[RIOT API] 2. 유저이름, 유저태그로 puuid 발급 (account-v1)
Woolina 2024. 10. 12. 05:45
https://developer.riotgames.com/apis
라이엇 API는 여기에 정리 되어있다!
소환사명 + 태그로 puuid 발급 받기
라이엇 API는 대부분 원하는 정보를 바로 얻을 수 없고,
대부분 1을 구한 뒤 , 1을 이용해 2를 구하고, 2를 이용해 마침내 내가 원하던 정보 3을 구할 수 있는 식이다.
가장 1번이 되는 게 보통 이 puuid를 구하는 것이다.
Jump to Inputs 눌러서(아래) 가보자.
파라미터를 입력해준다. 나는 내가 사랑하는 우리혁의 유저네임으로 입력해봤다.
다음으로 맞는 지역을 선택하자. 한국은 ASIA서버에 속해있다.
그리고 API Key는 발급받은 production key가 있다면 드롭다운을 클릭하여 선택할 수 있다.
나는 Query param형식을 선택했다. 어차피 캡슐화 할거라서.
근데 Header에 넣어서 보내는 것이 보안적으로 훨씬 좋다.
모든 패러미터를 입력했으면 EXECUTE REQUEST를 눌러준다.
Request URL
그러면 이렇게 Request URL이 나오는데, 이게 바로 우리가 API를 호출할 때 사용할 Endpoint이다.
https://asia.api.riotgames.com/riot/account/v1/accounts/by-riot-id/{username}/{tag}?api_key={your_api_key}
따라서 여기서 username, tag, api_key를 넣어 호출하면 되는 것!!
나는 Query param을 선택했기 때문에 끝에 ?api_key=가 추가된것이 보인다.
Request Headers
이건 header에 대한 메타데이터이다.
해당 api를 호출할 때 header에 보내지는 것으로,
나는 requests 라이브러리를 사용할 꺼라, requests 라이브러리가 HTTP 요청에 필요한 헤더를 자동으로 처리해 주기 때문에,
내가 딱히 직접 요청 헤더를 신경 쓸 필요는 없었다.
Response Code
이건 응답 상태 코드이다. 200번이므로 성공했다는 것
만약 API Key가 만료되었거나 잘못되었다면 403 Forbidden이 뜨고,
유저네임이나 태그를 잘못 입력하여 없는 유저네임을 입력했다면 404에러가 뜬다.
Response Headers
이건 응답에 대한 메타데이터로, 이것도 딱히 우리가 신경쓸 필요는 없다.
Response Body
이제 중요한 response body!! 페이커 선수 계정의 인코딩된 puuid값이 반환되었다.
파이썬 코드
import sys
import os
import requests
from urllib.parse import quote
# 현재 파일의 경로를 기준으로 상위 디렉토리(프로젝트 루트)를 PYTHONPATH에 추가
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "/..")
from 앱이름.settings import RIOT_API_KEY
# API 키 설정
api_key = RIOT_API_KEY
def get_user_puuid(api_key, riot_id, tag_line):
"""주어진 리그 ID와 태그라인으로 유저의 PUUID를 조회합니다."""
encoded_riot_id = quote(riot_id)
encoded_tag_line = quote(tag_line)
url_puuid = f"https://asia.api.riotgames.com/riot/account/v1/accounts/by-riot-id/{encoded_riot_id}/{encoded_tag_line}?api_key={api_key}"
try:
response = requests.get(url_puuid, timeout=10)
if response.status_code == 404:
return None # 유저가 존재하지 않음
response.raise_for_status() # HTTPError가 발생하면 예외 발생
return response.json()['puuid']
except requests.exceptions.RequestException as e:
print(f"Error fetching PUUID: {e}")
return None
pip install requests을 해서 requests라이브러리를 먼저 다운받아야한다!
이제 이 puuid를 통하고 통하여 많은 것들을 발급 받을 수 있다!!
다음 포스팅에 이어서..