![]() 2025-02-21 17:30
조회: 13,003
추천: 27
로아 API 당신도 사용할 수 있습니다 (feat. 구글 앱 스크립트, 챗gpt)내용이 기니까 건너뛰실 분들은 제일 아래에 세줄 요약 없습니다. 1. 준비물 ※로스트아크 API 키 로아 서버에 데이터를 요청하기 위해서 필요한 인증 수단으로, 반드시 있어야 합니다. 만약 없으시면 API 공식 홈페이지 (https://developer-lostark.game.onstove.com/) <--- 여기서 로그인 후 발급가능합니다. ※챗 gpt 내가 만들고 싶은 함수가 어떤 기능을 하는지 설명만 잘 해주면 코드를 알아서 짜줍니다. 2. 어떤 도구를 사용할 것인가 ☆아래 방법 중 택1☆ ※구글 앱 스크립트 (추천도 ★★★★★) 장점: 구글 스프레드시트와 연동이 매우 쉬움. 시간 기반 매크로로 자동화 시킬 수 있어서 검색 돌려놓고 신경안써도 됨. 단점: 속도가 비교적 느린 편이고 일일 실행 횟수 및 시간 제한이 있는데 뚫으려면 돈내야함. 엑셀과 동기화 하려면 약간의 딜레이가(~1분) 있음 ※파이썬 또는 기타 프로그래밍 언어 및 개발환경 (추천도 ★★★☆☆) 장점: 로컬에서 직접 돌아가기 때문에 검색 속도가 매우 빠르고 api 호출 제한만 걸리지 않는다면 (분당 100회) 원한다면 하루 종일 실시간으로 돌릴 수도 있음. 제한사항이 있지만 엑셀에 데이터 쓰기 가능. 단점: 설치해야 할 게 많아서 진입장벽이 좀 있음. 내 컴퓨터 자원을 소모하고, 컴퓨터를 끄면 검색도 멈춤 ※엑셀 VBA (추천도 ★☆☆☆☆) 장점: 로컬에서 돌아감, 엑셀에 데이터 직접 쓰기 가능 단점: VBA 편집기가 매우 불친절하고, 사용자 풀이 적어 문제 발생 시 도움을 구하기 힘듬. 이번 글에서는 가장 쉽고 편리한 구글 앱 스크립트를 이용해서 특정 캐릭터의 원정대 정보를 검색해 보겠습니다. 3. 시작! 일단 로스트아크 API공식 문서 페이지로 들어가서 간단한 실습을 해 봅시다. https://developer-lostark.game.onstove.com/ 이 주소에 들어가서 로그인 및 베아트리스 누님 머리 위에 떠있는 주황색 버튼을 눌러서 API 키를 발급받아 줍니다. 발급받은 API 키를 잘 복사해 두신 다음에 좌측 상단의 API DOCUMENTS 탭으로 들어가면 아래와 같은 창이 뜹니다. ![]() 영어로 되어있으니까 무시하시고, 왼쪽 메뉴에서 CHARACTERS 탭을 눌러보겠습니다. ![]() 주황색에 자물쇠 아이콘이 달린 AUTHORIZE 버튼을 누르면 아래와 같은 창이 뜨고, VALUE 칸에 본인의 API 키를 넣어주시면 됩니다. ※이때 기본으로 적혀있는 "bearer " 를 지우시면 안되고 그 뒤에 이어서 붙여 넣으셔야 합니다. (띄어쓰기도 한 칸 포함입니다. 지우지 마세요) 최종 형태는 "bearer" + 공백 한 칸 + API 키 의 문자열이 되어야 합니다. ![]() 그리고 AUTHORIZE 버튼을 눌러서 인증 절차를 끝내고 팝업을 닫으시면 됩니다. 이제 AUTHORIZE 버튼 아래의 청록색으로 된 CHARACTERS 글자를 눌러보면 사용할 수 있는 요청 방식과 요청을 보내야 할 주소와 API의 응답이 어떤 건지 나옵니다. ![]() 오른쪽의 아래 화살표를 눌러서 숨겨져 있던 메뉴를 펼치면 본격적으로 실습을 해 볼 수 있는 창이 보입니다. ![]() Try it out 버튼을 눌러서 characterName을 입력하는 곳에 로머니의 캐릭터 중 하나인 "죠니낫브" 를 입력 후 Excute 버튼을 눌러 봅시다. ![]() Curl과 Request URL, 그리고 Response body를 확인 할 수 있고, 스크롤을 더 내려보면 Response의 예시도 알 수 있습니다. Curl은 뭔지 모르겠고, Request URL은 로스트아크 API 공식 홈페이지의 메인 주소 뒤에 요청을 보낼 주소를 붙이는 형태로 구성되어 있네요. (https://developer-lostark.game.onstove.com) + (/characters/{characterName}/siblings) 의 형태입니다. Response body에서는 저희가 입력으로 넣은 로머니 "죠니낫브"의 원정대 캐릭터 구성과, 데이터가 어떻게 구성되어 있는지 알 수 있습니다. 알아낸 정보들을 토대로 구글 앱 스크립트에서 캐릭터의 원정대 목록을 api를 통해 불러와 보겠습니다. 저는 자바스크립트 언어를 배워본 적이 없기 때문에 챗gpt 님께 여쭈어 보겠습니다. ![]() ![]() 오.... 다 만들어 줍니다. 암튼 이걸 그대로 복사해서 구글 앱 스크립트에 붙여넣고 실행을 해 봅시다. 우선 구글 스프레드시트 페이지로 가서 빈 스프레드시트를 만들어 줍니다. (https://docs.google.com/spreadsheets/) 스프레드 시트의 이름은 아무렇게나 저장해 주시고 상단 메뉴의 확장 프로그램 -> Apps Script 순으로 눌러서 구글 앱 스크립트 편집기로 들어가 줍니다. 방금 전에 gpt 님께서 알려주신 코드를 그대로 붙여넣기 하고 원래 있던 myFunction 안쪽에 gpt님이 알려주신 함수 이름을 적고 "죠니낫브" 캐릭터를 입력으로 넣은 다음 "myFunction" 함수를 실행해보겠습니다. (꼭 닉네임 양 끝에 따옴표를 명시해서 프로그램이 문자열로 인식하게 해야 합니다) 실행하시기 전에 API키 부분을 실제 본인의 API 키로 수정하는거 잊으시면 안됩니다~ ![]() 실행 버튼을 누르면 승인이 필요하다는 말과 함께 권한 검토 하라고 하는데 최초 실행 시에만 액세스를 허용해주면 됩니다. 쭉 누르다 보면 아래처럼 뭔가 위험해 보이는 창이 뜨는데 걱정하시지 말고 왼쪽 하단의 작게 써져있는 고급 -> "프로젝트명"(으)로 이동(안전하지 않음) (사실 안전함) 을 순서대로 클릭해주시면 됩니다. ![]() 액세스 권한을 모두 허용해주면 코드가 실행되고, 아무 일도 일어나지 않은 것처럼 보이지만 처음에 새로 생성했던 스프레드시트를 확인해보시면 ![]() 로머니의 캐릭터 목록이 잘 저장되어 있는 걸 확인하실 수 있을겁니다. 그래서, 이거로 뭘 할 수 있냐구요? 오늘 해본 것처럼 간단한 거 말고 아주 살짝 더 복잡한 쪽을 원하신다면 ![]() 지금까지 했던 것과 똑같은 과정을 따라서 (post 요청은 get요청이랑 조금 다르긴 하지만 gpt 형님은 다 알려주십니다) ARMORIES 쪽을 눌러보시면 캐릭터 장비, 아바타, 스킬, 보석, 카드, 수집품, 등등등을 가져와서 https://loawa.com/ https://iloa.gg/ https://zloa.net/ https://lopec.kr/ AUCTIONS 쪽을 눌러보시면 경매장 옵션, 가격을 가져와서 https://icepeng.com/imprinting (지금은 구시대의 유물이 되어버린 각인검색기... 빌어먹게 감사했습니다 갓이스펭님) https://mokoko.co.kr/t4accsearch MARKET 쪽을 눌러보시면 거래소 가격을 가져와서 https://loatool.taeu.kr/ https://loachart.com/craftcalc 아이디어와 의지, 능력이 있으시다면 위에 있는 사이트들과 비슷한 기능을 하는 무언가를 만드실 수 있을겁니다. 사실 데이터 긁어오는건 아무것도 아니고 가져온 데이터를 어떻게 가공해야 위의 사이트들 처럼 유의미한 결과를 만들어 내는지가 중요한 거니까요. 혼자서 할 수 있는 수준은 https://www.inven.co.kr/board/lostark/4821/104254 이런거나 만들어서 로생 각박하게 살거나 ![]() 재료 가격 긁어와서 더보기 효율 계산해본다거나 ![]() 제작효율을 따져본다거나 ![]() 매일매일 각인서 시세를 한 눈에 파악한다던가 등등 포피셜 구독 안눌러도 로생 손해는 안 볼 수 있습니다. 사실 구독 눌렀어요 이 글을 쓰게 된 이유는 ![]() 이전에 썼던 글에 어떤 분이 물어보셔서 입니다. 사실 거래소 가격 긁어오는걸 글로 설명해볼까 했는데 너무 길어질것 같아서 제일 간단한 예제로 바꿨습니다. 거래소 가격도 gpt 형님께 물어보면 친절하게 설명 해주시니까 잘 활용하시기 바랍니다.
EXP
174,155
(56%)
/ 185,001
![]()
|
인벤 공식 앱
댓글 알람 기능 장착! 최신 게임뉴스를 한 눈에 보자
전혀 모르둠이지만...
API 스크립트 짜기
혹시 gpt는 유료일까요? 아니면 공짜로 이용할 수 있는 부분인가요?
요즘 많이들 유용하게 쓰시는데 저만 좀 뒤쳐진 것 같아 이제부터라도 써보려 합니다