👌
slack-goに入門する
Goと仲良くなる必要性が生じて、ぼちぼち勉強している。他の言語に比べてREST APIを叩くのが妙にめんどくさい気がするが、C言語をパワーアップさせた言語ということなので仕方ないのだろう(?)
言語と仲良くなるにはとりあえずSlack Appを作るのが一番(わたしの場合は)。
しかしAPI叩くの面倒だしなあと思ってたら、slack-goなるライブラリが存在することを知ってちょっと試してみた。
インストール方法
以下のコマンドを実行して、インストールする。
わたしはいま、go getなるコマンドを雰囲気で使っている。これで依存パッケージのダウンロードとインストールができるらしい。
go get -u github.com/slack-go/slack
使い方
GitHubのリポジトリに信じられない量のサンプルコードがある。そうしたサンプルコードをほぼ丸写ししながら、Slackといえばメッセージということで以下のコードを書いた。
package main
import (
"fmt"
"github.com/slack-go/slack"
)
func main() {
api := slack.New("わたしのトークン")
channelID, timestamp, err := api.PostMessage("xxxxx(わたしのslackのtimeline)", slack.MsgOptionText("Hello World!", false))
if err != nil {
fmt.Printf("%s\n", err)
return
}
fmt.Printf("Message successfully sent to channel %s at %s", channelID, timestamp)
}
えいっ!
go run main.go
ちょっとドキドキしながらSlackを見にいくと、ちゃんとPostされていた。
うれしい!こんにちは世界!わたしが王だ!!
これまでSlack BotはほとんどGASで作ってしまっていたが、諸事情によりGoと仲良くなる必要性が生じてしまったので、毒はくらわばということでしばらくGoで色々やってみようと思う。ポインタがむずい。
Discussion