노드로 슬랙 챗봇 만들기 + cloudtype 무료 배포
사내 점심메뉴 관리를 위해 사이트를 만들까 하다가 슬랙을 통해 간단하게 구현이 가능할 것 같아 챗봇을 만들어보았다.
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의 랜덤한 메뉴가 채널에 전송이 된다.
배포
모두의 플랫폼팀, 클라우드타입
클라우드타입은 클라우드 기반 애플리케이션을 빠르게 개발하고 배포할 수 있는 클라우드 애플리케이션 플랫폼입니다.
cloudtype.io
무료 배포할만한 곳을 찾다가 가볍게 배포할 수 있는 곳을 찾아서 이곳에서 배포를 했다.
깃헙 저장소를 기반으로 바로 배포가 가능하다.
실행 커맨드만 npm start가 아닌 node main.js로 해주면 된다.