コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

Go's Lack

欠落感

時の流れは絶えずして変わることもないものですが、その先は得るもののない失うだけの世界なのです。悲しいかな。憂う気持ちだけが満たされていきます。今宵も僕は色々なものを失っていくのです。切ないな。

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)
}

まあ、いつものようソースが汚いですが、実行するとこんな感じになります。
f:id:andron:20180103203340p:plain

ボット経由で喋らせればよかったのでしょうけど、今回は動作確認ってことで許してください。これでスクリプトで動かす手筈が整いました。次回があれば進展あるかもしれません、まあ次回がいつになるかはわかりませんが……。