Plugin extension a simple slack bot for golang.
plugins.BotMessagePlugin
を実装して、slackbot.BotContext
にAddPlugin
するだけでプラグイン追加できます。
Bot側の実装は、こちらを参考にしてください。
package main
import (
"flag"
"net/http"
"os"
"github.com/kyokomi/slackbot"
"github.com/kyokomi/slackbot/plugins/echo"
)
func main() {
var token string
flag.StringVar(&token, "token", os.Getenv("SLACK_BOT_TOKEN"), "SlackのBotToken")
flag.Parse()
bot, err := slackbot.NewBotContext(token)
if err != nil {
panic(err)
}
bot.AddPlugin("echo", echo.NewPlugin())
bot.WebSocketRTM()
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("OK"))
})
http.ListenAndServe(":8000", nil)
}
package echo
import (
"github.com/kyokomi/slackbot/plugins"
)
type plugin struct {
}
func NewPlugin() plugins.BotMessagePlugin {
return &plugin{}
}
func (p *plugin) CheckMessage(_ plugins.BotEvent, message string) (bool, string) {
return true, message
}
func (p *plugin) DoAction(event plugins.BotEvent, message string) bool {
event.Reply(message)
return true // next ok
}
func (p *plugin) Help() string {
return `echo:
all message echo
`
}
var _ plugins.BotMessagePlugin = (*plugin)(nil)