Function 'fixBOM' finished with error! Unexpected token '<', "<br /> <b>"... is not valid JSON
Origin
Make
Automatic error handler
If you want to handle this error automatically, choose one of the following options. This will create a new error-handler route in your scenario. You can then expand the route in any way you like.
Ignore all errors
자동화 커뮤니티에서도 비슷한 문제를 겪고 있는 분들이 보이고
딱부러지는 해결책은 없는 것 같아요
AI의 답변은 다음과 같은 데 자동화의 길은 쉬운길은 아님을 다시 한번 느끼게 되네요.
## Make 시나리오 오류 해결법: 워드프레스 연결 문제와 Unexpected token 에러 해결 가이드 요즘 많은 분들이 자동화 툴로 Make를 쓰면서 워드프레스 블로그까지 글을 자동으로 올리시는 경우가 많아졌는데요. 저도 최근에 GPT로 생성한 글을 Make 시나리오 통해 워드프레스에 연결하는 작업을 진행하다가 예상치 못한 에러를 만났습니다.
바로 **IMLError와 Unexpected token '<' 에러**였는데요. 이런 문제, 사실 한번쯤 겪어보신 분들 꽤 있을 거라 생각합니다. 이 글에서는 그 원인과 해결 방법을 제가 직접 경험한 내용을 기반으로 최대한 쉽게 풀어드리려고 합니다. 자동화 시나리오 구성할 때, 특히 GPT 응답 처리와 워드프레스 업로드 단계에서 어떤 부분을 꼭 챙겨야 하는지 알려드릴 테니, 비슷한 문제로 골치 아프신 분들은 꼭 참고해보세요.
--- ### 왜 이런 에러가 발생할까? 원인부터 제대로 짚고 가야죠! 일단 Make 시나리오에서 GPT API로 글을 생성하고, 그 결과물을 워드프레스로 넘길 때 아래 두 가지 상황이 문제를 일으키는 경우가 많습니다. 1.**GPT 응답에 숨은 BOM(Byte Order Mark) 문제** 가끔 GPT 응답 내용 맨 앞에 눈에 보이지 않는 BOM이라는 녀석이 붙어 있는데, 이게 JSON 파싱을 방해해서 예상치 못한 에러를 일으킬 수 있어요. 2.**워드프레스에서 HTML 에러 페이지 반환** 원래는 JSON 형태의 응답이 와야 정상인데, 워드프레스 쪽에서 뭔가 문제 생기면 HTML 형식의 에러페이지가 내려오는 경우가 많거든요. 그런데 Make에서는 이걸 JSON으로 착각하고 다음 단계로 넘겨버리면서 `Unexpected token '<'` 같은 에러가 터지는 거죠. --- ### 해결 방법: Make 시나리오 수정 포인트 5가지
#### 1. GPT 응답 정리 및 JSON 유효성 체크 필수 GPT에서 받은 결과물이 진짜 JSON이 맞는지, 특수문자나 BOM 같은 불순물(?)이 섞여있지는 않은지 먼저 확인하는 과정이 필요합니다. Make에서 바로 연결하지 말고, **JavaScript 모듈**을 하나 끼워서 이런 작업을 먼저 거치면 나중에 한결 수월해져요
function fixBOM(input) { if (input.charCodeAt(0) === 0xFEFF) { return input.slice(1); } return input; } let gptResponse = inputData; // Make에서 받은 응답 let cleanedResponse = fixBOM(gptResponse); try { JSON.parse(cleanedResponse); outputData = cleanedResponse; // 다음 단계로 보낼 깨끗한 데이터 } catch (e) { throw new Error("GPT 응답이 JSON 형식이 아닙니다: " + e.message); }
이런 식으로 중간에 걸러주는 거죠.
2. 워드프레스 응답도 꼼꼼하게 검사해야
워드프레스로 글을 올리고 나면 응답이 제대로 왔는지도 꼭 확인해야 합니다. 특히 Content-Type이 application/json이 아니면 뭔가 잘못된 거거든요. HTML 에러페이지를 그대로 다음 단계로 넘겨버리면 또 에러가 터집니다.
이런 체크도 JavaScript 모듈로 추가해두면 안전해요.
let responseBody = inputData; // 워드프레스 응답let contentType = headers['Content-Type'] || ''; if (!contentType.includes('application/json')) { thrownewError("워드프레스에서 JSON이 아닌 응답이 왔습니다: " + responseBody); } outputData = responseBody; // 정상일 때만 다음으로 넘김
3. 워드프레스 API 주소 & 인증 정보 확인
기본 중 기본이지만, 혹시라도 잘못 설정한 경우가 있어서요. 워드프레스 REST API 주소는 아래처럼 확인하세요.
https://도메인주소/wp-json/wp/v2/posts
인증은 애플리케이션 비밀번호가 가장 안정적입니다. 워드프레스 관리자 페이지 > 사용자 > 애플리케이션 비밀번호에서 새로 하나 발급받고, Make HTTP 모듈에서 아래처럼 설정하시면 됩니다.