잡동사니

노드로 슬랙 챗봇 만들기 + cloudtype 무료 배포

해리 2023. 4. 10. 16:34

사내 점심메뉴 관리를 위해 사이트를 만들까 하다가 슬랙을 통해 간단하게 구현이 가능할 것 같아 챗봇을 만들어보았다.

1. 슬랙 API 사이트 접속 (https://api.slack.com/)
2. Create an app 클릭

3. From scratch 선택

4. 앱 이름 및 워크스페이스 선택후 생성

5. 소켓 모드 활성화

6. Event Subscriptions 구독 -> Save Changes 클릭

7. OAuth & Permissions 탭 클릭

 

9. Scopes 추가

10. OAuth Tokens 발급 받기 (Install to Workspace / Reinstall to Workspace)

11. 슬랙 - 챗봇을 추가하고자 하는 채널에 챗봇 추가

 

12. 코드 작성 (main.js)

const { App } = require("@slack/bolt");
const dotenv = require("dotenv");

dotenv.config();

const app = new App({
  token: process.env.BOT_TOKEN,
  signingSecret: process.env.SIGNING_SECRET,
  socketMode: true,
  appToken: process.env.APP_TOKEN,
});

const menus = ["가람 부대찌개","강강술래","고갯마루"];

app.message(".랜덤메뉴", ({ _, say }) => {
  const menuIndex = Math.floor(Math.random() * menus.length);
  say(menus[menuIndex]);
});

(async () => {
  await app.start(3000);

  console.log("⚡️ Bolt app is running!");
})();

token: OAuth & Permissions - Bot User OAuth Token

signingSecret: Basic Information - App Credentials - Signing Secret

appToken: Basic Information - App-Level Tokens

 

해당 코드를 작성시 슬랙에서 .랜덤메뉴를 타이핑하면 menus의 랜덤한 메뉴가 채널에 전송이 된다.

 


배포

 

https://app.cloudtype.io/

 

모두의 플랫폼팀, 클라우드타입

클라우드타입은 클라우드 기반 애플리케이션을 빠르게 개발하고 배포할 수 있는 클라우드 애플리케이션 플랫폼입니다.

cloudtype.io

무료 배포할만한 곳을 찾다가 가볍게 배포할 수 있는 곳을 찾아서 이곳에서 배포를 했다.

깃헙 저장소를 기반으로 바로 배포가 가능하다.

실행 커맨드만 npm start가 아닌 node main.js로 해주면 된다.