상세 컨텐츠

본문 제목

구글 앱스크립트 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과 다른 점은 데이터 형식에 제한은 없지만 무엇을 보내는지 직접 확인이 불가능하고, 전송되는 데이터에 대한 공유가 불가능 합니다.

반응형

관련글 더보기

댓글 영역