55
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Slackme: テキストも画像もコマンドラインからSlackに送りつける

Posted at

コマンドラインからSlackにメッセージや画像を送りつけたいので、そのようなコマンドを作った。

Slackme demo

使い方

引数に文字列を渡して、文字列が存在するファイル名だったらファイルがSlackにアップロードされる。ファイル名じゃない文字列はメッセージとしてSlackにポストされる。

例えば:

  • slackme "hello world" : "hello world" とメッセージをポストする
  • slackme image.jpg : image.jpg をアップロードする(ファイルが存在すれば)
  • slackme "i like it" lgtm.gif : "i like it" をメッセージとしてポストしたあと、lgtm.gif をアップロードする

個人的な便利ポイントとして、EPSファイルやSVGファイルは、ImageMagickのconvertがあると勝手にPNGに変換してくれたり、高解像度(1Mピクセル)のファイルは縮小してアップロードするようになっていたりする。

初期設定

~/.slackme.yml を作っておく

:token: <slack API token>
:channel: "#channel"

今のところチャンネル名は決め打ちになってる。

ぼっちSlackのススメ

計算機を使って長時間のジョブをいろんなマシンで実行することが多いので、最近はSlackを通知専用に使っている。SlackをiPhoneとMacbookにインストールしておけば、ネットワークに繋がっている時は必ず何らかの方法で通知を受け取ることができるので便利。これがメールだと受信トレイがゴミで溢れてストレスが貯まるが、Slackだと適当に流れていくだけなのでちょうど良い。

Slackmeで画像もアップロード出来るようになったので、通知+結果データのgnuplot出力を送る、といったこともこれからやってみようと画策している。

また、リモートサーバで実験していると、グラフをgnuplotでファイルに出力してからGUIのあるマシンまでコピーしてきて表示させるという手間が何かしら発生してしまうが、とりあえずプレビューするのにもSlackmeが便利なのではという気がしている。

他との比較

とりあえず作ってみてから、他に似たようなものがないか調べてみたら、まあ色々ある。

  • Slack incoming webhook: Slackがデフォルトで提供しているHTTPS経由で投稿できるエンドポイントがある。curlなどで叩ける
  • slackcat : 汎用的にメッセージポストしたりファイルアップロードしたりできる
  • slacktee : teeを使う感覚でテキストをポストできる
  • slack-post : 簡単なRubyのSlack APIラッパ+コマンドラインインターフェース。テキストのポストのみ対応っぽい。
55
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?