TouchBarからSlackにメッセージを送る

#TouchBarからSlackにメーッセージを送る方法です。
## 事の発端
新しくアルバイトとして入社した企業の配属チームの勤怠ルール
>出社、休憩開始、休憩終わり、退社時に特定のチャンネルにそれぞれに対応する絵文字を送信する。

割とめんどくさい・・・　ちなみにこれ以外にも勤怠システムとタイムカードの３重門。

##前回
**ワンクリックで登録できるようにアプリを作ろう！**
となってElectronとVueで動くアプリを作りました。
　↓
[僕の前回の雑な記事](https://qiita.com/unotovive/items/0e0a117340eaa04c9f77)
[それをいい感じに詳しくしてくれたやつ](https://qiita.com/makies/items/2c3eac6dd7d3a8228fe7)
##今回
**アプリでも結構めんどくさくね？**となった時にｃという記事を見つけました。

どうやらTouchBarをいい感じにカスタマイズできるようなのですが、シェルスクリプトやApplescript等、各コマンドを割り当てることも出来るみたいです。

前回も利用しましたが、**SlackはCurlでメッセージを送信できます！**
ということは、**TouchBarを押すだけでSlackにメッセージが送信できる物が作れる**ということです。

##手順
**今回は記事がDisられないように丁寧に解説します。**

###BTT(Better Touch Tool)の導入
TouchBarのカスタマイズに必要なBTTというツールをインストールします。
[こちら](https://folivora.ai/)にアクセスして、DOWNLOAD TRIALS 45DAYSボタンでダウンロードしましょう。

書いてあるとおり45日体験が無料ですが、それ以降は有料です。良かったら購入しましょう。

ダウンロードが完了したらZIPを展開、中身の.appファイルをMacのアプリケーションフォルダに移動します。
これでインストール完了なので早速BTTを起動しましょう。

インストール等についてはとても詳しく解説されている記事がありますのでご参考までに
[BetterTouchTool（BTT）の使い方と設定まとめ！神アプリを使いこなそう！ | Aprico](https://aprico-media.com/posts/1366)

###Slackの設定（APIキーの取得）
**これから取得するAPIキーは流出するとあなたのSlackWorkspaceにあなた名義でどのチャンネルにでもメッセージを送れてしまうので取扱には最新の注意をはらいましょう。**

こちら（[Slack API 推奨Tokenについて](https://qiita.com/ykhirao/items/3b19ee6a1458cfb4ba21#2-gui%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)）の手順どおりに進め、`xoxp-XXXXXXXX`のような長いTokenを生成して、メモっておきます。

上記記事の2.スコープ設定という所でスコープを設定していると思いますが、今回は「Send messages as user」を選択します。（後からでも変えられます）

###BTTの設定

**この記事ではCurlでSlackにメッセージを送信するところだけをやりますので、その他のカスタマイズは[お前らのTouchBarはダサい](https://qiita.com/2357gi/items/8235093de77aa3e5fecc)を見て下さい。**

設定を開いて、タッチバーのタブを開きます。
[![Image from Gyazo](https://i.gyazo.com/54fb1474160204075d6be71b9db1218c.png)](https://gyazo.com/54fb1474160204075d6be71b9db1218c)

明らかに追加できそうなボタンがあるので押します。
[![Image from Gyazo](https://i.gyazo.com/ca67a12dd7c327a1c11de78a4a3c7a4c.png)](https://gyazo.com/ca67a12dd7c327a1c11de78a4a3c7a4c)
すると右側にSelect Triggerと出てくるので、ひとまずグループを選択して、名前をつけます。
[![Image from Gyazo](https://i.gyazo.com/89c87b1546f243b09d9661e04c74a0e0.png)](https://gyazo.com/89c87b1546f243b09d9661e04c74a0e0)
作成したグループをダブルクリックするとグループが開くので、今度は追加で「タッチバーボタン」を追加しましょう。
[![Image from Gyazo](https://i.gyazo.com/7ae16065170630f747aaf64e536715c5.png)](https://gyazo.com/7ae16065170630f747aaf64e536715c5)

するとボタンが追加されるので、ボタンタイトルや色、大きさをいい感じに変更します。

次にこのボタンに機能を割り当てます。
[![Image from Gyazo](https://i.gyazo.com/4d0cd07e4c1bbfb16e3bfb78437edf0a.png)](https://gyazo.com/4d0cd07e4c1bbfb16e3bfb78437edf0a)
真ん中の主張激しめの＋ボタンを押します。
[![Image from Gyazo](https://i.gyazo.com/a939494ec33c179c722b9d358a2d00a2.png)](https://gyazo.com/a939494ec33c179c722b9d358a2d00a2)

いろいろ選択肢が出てくるのですが、今回はCurlを使いたいので「端末コマンドの実行」を選びます。（同期非同期はメッセージの送信だけならどちらでも良いです。）

[![Image from Gyazo](https://i.gyazo.com/8dc2956f670606a920460c4fdd7552e6.png)](https://gyazo.com/8dc2956f670606a920460c4fdd7552e6)

コマンドを入力できるところが出ましたので、ココに以下のコマンドを入れます。

```sh
curl -XPOST -d "token=<さっき取得したxoxp-的なトークン>" -d "channel=#メッセージを送信したいチャンネル名" -d "text=送りたいメッセージ" -d "as_user=true" "https://slack.com/api/chat.postMessage"
```

`as_user=true`を設定することで「自分として」メッセージを投稿できます。

もちろん色々なカスタマイズが出来るので[SlackAPIの公式](https://api.slack.com/methods/chat.postMessage)を見ていろいろとカスタマイズして下さい。

[![Image from Gyazo](https://i.gyazo.com/c53a44673117c511295d4b988e2efe8b.png)](https://gyazo.com/c53a44673117c511295d4b988e2efe8b)

これで保存すれば、Slackにメッセージを送信できるTouchBarボタンの完成です。

##出来たもの
何個かボタンを作って色をいい感じに変えたもの
[![Image from Gyazo](https://i.gyazo.com/6e78003a9fefa378cd06bf819e5959e7.gif)](https://gyazo.com/6e78003a9fefa378cd06bf819e5959e7)