Amazon Dash Button でSlackにリセットボタンを設置する

  • 16
    Like
  • 0
    Comment

この記事は Slack Advent Calendar 2016 の7日目の記事です。

昨日は JohnEstropia さんの Slack×Swift×Fastlane:iOSアプリ配信ボット でした。

別の記事を書こうと思ったのですが、AmazonからDash Buttonが届いてしまったのでこれをいじります。

IMG_2199.JPG

普通にアリエールを注文しようと思ったんですが、いじってる方の記事を見て面白そうだったので。

Slackのチャンネルをキレイにしたい

botが暴れて通知が溜まったときなど、なんとなく画面を一旦まっさらにしたくなる時があります。
reset.gif

現状はhubotで clear コマンドを実装して使用しています。
MacやLinux等のターミナルで clear コマンドを叩くとコマンドや標準出力の履歴を消し去ってくれますが、アレのSlack版ですね。

今回はこれを物理ボタンで実現してみようと思います。

作り方

さて、見た目はちょっとインパクトあるこの機能ですが実装は簡単です。
単純にSlackのIncoming Webhookに大量の改行を投げるだけです。

先程のエントリでそこまでのやり方は書かれていたので、ここでは差分のdasherのconfigファイルのみ記載します。

config/config.json
{"buttons":[
  {
    "name": "clear",
    "address": "12:34:56:78:9a:bc",
    "url": "https://hooks.slack.com/services/xxxxx/xxxxxx/xxxxxxxxxxxxxx",
    "method": "POST",
    "json": true,
    "body": {"text": "リセットします。\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n *リセットしました。* "}
  }
]}

改行コードの前後にわざわざ文字列を追加しているのは、Slackの仕様で改行コードだけだと一行しか表示されないからです。
うん、 これはひどい。

動いている様子(YouTube)。

さくっと作れすぎて書くことが他にないですが、以上。

触って感じたこと

  • やはり物理ボタンは面白い
    • 物理ボタンにフィードバックがあるのはただそれだけで楽しい
  • リアルタイムな反応が求められる用途には厳しい
    • 今回のリセットボタンはタイムラグがあるので 気持ちよさ は無い
      • 元が発注用途だから当然か
      • 家庭内の電気を付ける、とかの用途にもちょっとストレスかも
    • とはいえ用途は無数にありそう
      • 開発周りで言えばデプロイボタン等そもそもの処理にある程度時間がかかるものならタイムラグは気にならないかも

備考

  • 余談だが、Unix系ターミナルでの clear はWindowsのコマンドプロンプトでは cls 。2文字少ない。
    • 数少ないコマンドプロンプトの良いところ
  • リセットボタンというよりはclearボタンだ
  • 予告していた記事とまったく別のものになってしまった
    • しかも内容の薄い記事になってしまい猛省である
  • 初Qiita