본문 바로가기

📂Project

[TIL] PUBG에서 배틀그라운드 게임 데이터 API로 불러오기

※ 모바일 배틀그라운드는 안된다. 스팀이나 카카오 게임 서버로 생성된 PC 게임 데이터만 볼 수 있다. 

1. PUBG developer 사이트에 접속해 회원 가입한다. 

 

Official PUBG API

Start building your own website today using official PUBG data.

developer.pubg.com

 

2. 로그인 후 등록하라는 팝업이 뜨는데, 내 API를 발급받기 위해 기본 정보를 입력한다. API는 여러 개 만들 수 있다. 

등록하면 이런 화면이 뜬다. 난 API를 가렸다.

※ 여기서 생성된 API KEY는 외부에 공개되면 안된다고 하니 외부에 올릴 때 주의! API 이름은 언제든 수정할 수 있다. 

 

3. 이제 데이터를 가져올 수 있다! 나는 Player 탭에서 내 아이디를 넣어 경기 데이터를 보려고 했다. 

우선 AUTHORIZE를 클릭해 방금 생성한 API 주소를 넣어준다. 내 아이디는 kakao 서버기 때문에 kakao로 선택해준다. 

이 순서대로 넣으면 된다. 1번에 내 API 주소를 넣고 2번, 3번을 차례로 클릭해준다. 

1번에 TRY IT OUT 버튼을 클릭하면 CANCEL로 바뀌면서 밑에 정보를 넣는 창이 뜬다. 여기서 내 아이디를 입력해준다. 

난 PlayerIds에 있는 예시 값을 지우지 않아 판다스에서 오류로 고생했다. 위에 칸을 꼭 지우고 아이디만 입력하자. 

EXECUTE 버튼을 클릭해 다음과 같은 URL이 나오면 끝! 이제 판다스로 넘어가 데이터를 불러와보자. 

 

4. 사실 PUBG는 언어별로 준비를 해놓았다. 친절하다. documentation.pubg.com/en/making-requests.html

 

Making Requests — pubg 1.0 documentation

Content Negotiation Clients using the API should specify that they accept responses using the application/vnd.api+json format. For convenience, we will also accept application/json since it is the default for many popular client libraries. The Server will

documentation.pubg.com

난 파이썬을 사용할 것이니 파이썬 코드를 불러와 주피터 노트북에 붙여넣어주자. 

import requests

url = "endpoint-url"

header = {
  "Authorization": "Bearer <api-key>",
  "Accept": "application/vnd.api+json"
}

r = requests.get(url, headers=header)

이제 여기서 아까 만든 URL을 URL 값에 넣어주고, 내 API를 API 값에 넣어 출력하면 된다. 

import requests

url = "방금 생성한 URL"

header = {
  "Authorization": "내 API 주소 입력",
  "Accept": "application/vnd.api+json"
}

r = requests.get(url, headers=header)

그리고 이렇게 불러오면 

player_dataitgirls_json = r.json()
player_dataitgirls_json

내가 지금까지 경기한 경기의 ID 값이 나온다. 이 경기 ID를 같은 방식으로 mathes에 넣어주면 경기별 데이터가 나온다.

 

5. MATCHES 데이터 불러오기 

방법은 동일하다. 이번에 넣는 ID는 내 게임 ID가 아니라, Player 데이터에서 뽑은 경기 당 ID다. 넣고 똑같이 출력 

이렇게 경기당 kills이나 assists 등 경기 세부정보가 dict값으로 나온다.

와! 이제 이걸 보기 좋은 형태로 만들고 싶은데, 이건 공부해서 다음 시간에!