欠落感
時の流れは絶えずして変わることもないものですが、その先は得るもののない失うだけの世界なのです。悲しいかな。憂う気持ちだけが満たされていきます。今宵も僕は色々なものを失っていくのです。切ないな。
GoでSlack
さて、そうしたわけで最近意味もなく触っている"コミュニケーション" ツールであるSlackをいじっていきます。今回はSlack APIを使ってなんやかんややっていきます。ちなみに、コミュニケーションツールなのに僕は誰とも会話を交わすなどをしていません。ウケるね。
Slack API
Slack API: Applications | Slack
APIについては多分ここをみていけばいけると思います。ダメそうならググりましょう。僕が解説入れると尋常でなく雑になるからね。仕方ないね。雑なりに設定方法を説明しますと、利用ユーザの登録 ⇒ APIユーザ(開発者)の登録 ⇒ トークンの発行みたいな感じになります。
これで登録すると以下のようにコマンドで打つとスラック上にメッセージを垂れ流すことができるようです。
https://slack.com/api/chat.postMessage?token=【トークン】&channel=【チャンネル】&text=【メッセージ】
これで毎回メッセージを打ち込めばちょっとしたツールになります。しかし、それでは毎日のように壁と会話してる僕でも悲しくなってしまうのでスクリプトにします。言語はなんでもいいのですが、タイトルにGOの文字を入れてしまったので今回はGo言語でやっていきます。
package main import ( "bytes" "net/http" "net/url" ) var( token string = "APIトークン" apiUrl string = "https://slack.com/api/chat.postMessage" channel string = "#チャンネル" ) func main() { data := url.Values{} data.Add("token", token) data.Add("channel", channel) text := "おはよー!!こんちはー!!こんばんはー!!おやすみー!!おきてええええええ!!" data.Add("text", text) client := &http.Client{} r, _ := http.NewRequest("POST", fmt.Sprintf("%s",apiUrl), bytes.NewBufferString(data.Encode())) r.Header.Add("Content-Type", "application/x-www-form-urlencoded") client.Do(r) }
まあ、いつものようソースが汚いですが、実行するとこんな感じになります。
ボット経由で喋らせればよかったのでしょうけど、今回は動作確認ってことで許してください。これでスクリプトで動かす手筈が整いました。次回があれば進展あるかもしれません、まあ次回がいつになるかはわかりませんが……。