[slack] 슬랙봇을 만드는 방법

슬랙봇을 만들려면 다음 단계를 따르면 됩니다.

  1. 슬랙 앱 생성

먼저 슬랙 앱을 생성해야 합니다. 슬랙 앱을 만들면 봇 사용자를 만들고, 해당 봇 사용자를 슬랙 채널에 초대하여 봇을 사용할 수 있습니다.

  1. 슬랙 봇 생성

앱을 생성한 후에는 슬랙 봇을 생성해야 합니다. 이를 위해 슬랙 앱 대시보드에서 “Bot”을 클릭하고, “Add a Bot User”를 선택합니다.

봇을 생성한 후에는 봇의 이름과 프로필 사진을 설정할 수 있습니다. 이 정보는 슬랙 채널에서 봇을 식별하는 데 사용됩니다.

  1. 뉴스 API 사용

이제 뉴스 API를 사용하여 특정 키워드의 뉴스를 가져올 수 있습니다. 널리 사용되는 뉴스 API에는 NewsAPI, Bing News Search API, Google News API 등이 있습니다.

여기에서는 NewsAPI를 사용하는 방법을 설명하겠습니다.

NewsAPI를 사용하려면 API 키를 발급받아야 합니다. 이를 위해 NewsAPI 웹사이트에 가입한 후 API 키를 발급받으세요.

  1. 슬랙 봇 코드 작성

이제 슬랙 봇 코드를 작성할 수 있습니다. 슬랙 봇 코드는 봇이 수신한 메시지를 처리하고, 뉴스 API를 사용하여 특정 키워드의 뉴스를 가져오는 역할을 합니다.

Flutter와 Firebase Functions를 사용하여 슬랙 봇을 작성할 수 있습니다. Firebase Functions를 사용하면 서버리스 아키텍처를 사용하여 슬랙 봇 코드를 작성할 수 있습니다.

아래는 Firebase Functions에서 슬랙 봇 코드를 작성하는 예시입니다.


``const functions = require('firebase-functions');
const { WebClient } = require('@slack/web-api');
const axios = require('axios');

// Slack API 클라이언트 생성
const slackClient = new WebClient(functions.config().slack.bot_token);

exports.slackbot = functions.https.onRequest(async (req, res) => {
  try {
    // 메시지 정보 추출
    const { text, user_name } = req.body;
    
    // 뉴스 API에서 뉴스 검색
    const newsApiUrl = `https://newsapi.org/v2/everything?q=${text}&apiKey=${functions.config().newsapi.key}`;
    const { data } = await axios.get(newsApiUrl);
    
    // 뉴스 결과 추출
    const newsItems = data.articles.map((article) => ({
      title: article.title,
      description: article.description,
      url: article.url,
    }));
    
    // 슬랙 메시지 작성
    const message = {
      channel: req.body.channel_id,
      text: ` ``