상세 컨텐츠

본문 제목

구글 앱스크립트 doPost()시 HTML 반환 에러

IT✨/프로그래밍

by Eva___ 2023. 8. 19. 20:19

본문

반응형

구글 앱스크립트로 슬랙에서 사용자의 커맨드를 입력 받아 원하는 메시지를 돌려주는 슬랙봇을 만들려고한다.

[에러 현상]

doPost()로 슬랙봇에 사용자가 입력한 커맨트를 받아 원하는 메시지를 보내는 앱을 만들려고한다.

하지만 커맨드를 입력하면 <!DOCTYPE html><html><head> 같은 HTML 코드가 반환 된다.

 

[에러 원인]

Google Appscript가 HTML 콘텐츠 대신에 HTML 문서를 반환하고 있는 것을 의미한다고 한다. doPost 함수에서 반환하는 형식이 잘못 되었을 가능성이 있다.

function doPost(e) {
  var responseText = "텍스트";
  return ContentService.createTextOutput(responseText).setMimeType(ContentService.MimeType.TEXT);
}

ContentService.createTextOutput(responseText)는 텍스트 응답을 생성하고 .setMimeType(ContentService.MimeType.TEXT)는 응답의 MIME 유형을 설정하여 HTML이 아닌 텍스트 응답을 반환하게 하면 HTML을 반환하지 않는다.

[참고]

Slack에서 Slash 명령어가 호출되면, Request URL로 HTTP POST를 보내는데, Request 바디에서 어떤 텍스트가 입력됐는지 확인하여 원하는 답장을 보내려고 한다.

이를 위해서는 구글 앱스크립트의 doPost 함수를 사용해야 한다. doPost함수는 사용자의 웹 요청이 들어오면(접속 시) Google Appscript가 함수를 호출해 파라미터를 넘겨주는 역할을 한다. doPost함수를 통해 서버에 들어오는 내용을 알 수 있다. get과 다른 점은 데이터 형식에 제한은 없지만 무엇을 보내는지 직접 확인이 불가능하고, 전송되는 데이터에 대한 공유가 불가능하다.

반응형

관련글 더보기

댓글 영역