YJWANG

[Go] Golang Slack bot 만들기 (slack-go 사용)_1 본문

90.Programming

[Go] Golang Slack bot 만들기 (slack-go 사용)_1

왕영주 2020. 12. 17. 22:46

https://github.com/slack-go/slack
위 라이브러리를 사용하여 개발을 시작할 예정이며 현 글에서는 Slack API에서 bot token 생성 및 간단한 메시지 전송까지 다룬다.

1. Slack API에서 bot App 만들기

[https://api.slack.com/](https://api.slack.com/)

해당 링크에 들어가서 아래와 같이 진행하면 Slack Bot에서 사용할 Token을 얻을 수있다.
메시지가 보내지지 않거나 User정보가 오지 않는다면 아래 설정한 권한을 수정해보자

2. Bot 작성하기

토큰으로 Bot에 대한 인증 정보를 만들고 Slack Attachment에 글 내용을 실어서 api.PostMessage로 전송한다.
현재는 Example이지만 향후는 interactivity한 앱을 만드는 작업을 진행하고자한다.

package main

import (
    "fmt"

    "github.com/slack-go/slack"
)

func main() {
    api := slack.New("xoxb-159420(생략)")
    attachment := slack.Attachment{
        Pretext: "내가 잘해야!",
        Text:    "모두가 편하다 삐빕",
    }

    channelID, timestamp, err := api.PostMessage(
        "일반",
        slack.MsgOptionText("", false),
        slack.MsgOptionAttachments(attachment),
        slack.MsgOptionAsUser(false), // Add this if you want that the bot would post message as a user, otherwise it will send response using the default slackbot
    )
    if err != nil {
        fmt.Printf("%s\n", err)
        return
    }
    fmt.Printf("Message successfully sent to channel %s at %s", channelID, timestamp)

}

더 다양한 Example과 설명은 해당 라이브러리 github에서 참고하시기 바랍니다.
https://github.com/slack-go/slack/tree/master/examples

반응형