본문 바로가기
Dev/slack

Slack Socket 연결..with Bolt

by 펭귄안에 온천 2022. 10. 17.
728x90
반응형

outgoing 웹훅으로 Slack에서 메세지 입력시 우리 서버로 알림을 받을 수 있다.

그러나 우리 서버가 방화벽이나 보안 문제로 외부에서 접근하지 못할때가 문제다

 

그럴때 Socket을 이용해서 Slack과 연결 할 수 잇다.

 

1. Create New App

2. From an app manifest ( From scratch를 통해 직접 권한 설정을 할 수 있지만 이번에는 manifest로)

 

display_information:
  name: SocketApp
features:
  bot_user:
    display_name: SocketApp
    always_online: false
oauth_config:
  scopes:
    bot:
      - app_mentions:read
      - channels:history
      - groups:history
      - im:history
      - mpim:history
      - chat:write
settings:
  event_subscriptions:
    bot_events:
      - app_mention
      - message.channels
      - message.groups
      - message.im
      - message.mpim
  interactivity:
    is_enabled: true
  org_deploy_enabled: false
  socket_mode_enabled: true
  token_rotation_enabled: false

3. 위의 내용 붙여 넣기하면 권한등이 다 설정 된다.

 

4. App Token 발급 ( Basic Information -> App-Level Tokens -> Generate Token and Scopes )

 

 

5. 코드 구현

const config = require("./config");

//npm install @slack/bolt
const { App } = require('@slack/bolt');

const app = new App({
  token: config.botToken, //OAuth & Permission에서 install to workspace하면 나옴)
  signingSecret: config.signingSecret, // Basic information -> Signing Secret
  socketMode: true,
  appToken: config.appToken, //(앱토큰)
  port:3000
});

app.message('hello', async ({ message, say }) => {
  await say(`Hellow^^ , <@${message.user}>`);
});

(async () => {
  // Start your app
  await app.start();
  console.log('⚡️ Bolt app is running!');
})();

5. 채널 생성하고 채널에 앱추가하고 Test

 

 

참고 - https://slack.dev/bolt-js/concepts

 

Slack | Bolt for JavaScript

Actions, commands, and options requests must always be acknowledged using the ack() function. This lets Slack know that the request was received and updates the Slack user interface accordingly. Depending on the type of request, your acknowledgement may be

slack.dev

참고 - https://api.slack.com/apis/connections/socket

 

Intro to Socket Mode

How to use Socket Mode with SDKs.

api.slack.com

 

반응형

'Dev > slack' 카테고리의 다른 글

Slack API로 메세지 보내기  (1) 2022.10.15
Slack 웹훅으로 메세지 보내기  (1) 2022.10.15