11
10

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.

Slackのはなし

Last updated at Posted at 2015-12-09

この記事は、モバイルファクトリー Advent Calendar 2015 九日目担当の@hiyoko9191です。

はじめに

2015年から、業務もプライベートもSlackを使い始めました。botとか情報収集とかでSlack APIを結構触ったので、途中で得た知見を共有したいと思います。

Slackアプリで困ったこと

Slackアプリのハイライトの仕組み

  • ハイライトワードの設定はコンマで切り離します。(知らずにスペースや別のシンボルを使う人はたまにいる)
  • ハイライトワードは大文字と小文字を区別しないです。
  • ハイライトしたいワードは基本分離符で分離してください。
  • (漢字・ひらかな・カタカナ)で挟む英語は分離符で分離しなくても大丈夫。たとえ「この件は@hogeさんにお願いします」はちゃんとhogeさんのときに届きます。
    • 句点、はてなの後ろにうっかり直接@hogeでハイライトさせたい場合はたまにあると思うが、ちゃんと分離符で分離しないとダメです。たとえ「この件どうしよう?@hoge」はハイライトしないです。
    • botの発言はアプリ内で見るときはハイライトするけど、実際は通知を飛ばないです。(bot書くときの要注意点)

Slackアプリのメンション機能は強いけど、ハイライトメッセージの拾いは若干足りない感じで自分ルールで通知飛ばしたいです。

  • 向うのミスでメンションが届いてない場合も気づきたいです。(分離符を使ってなかったとか、約束してない単語を使ったとか)
  • 誰かが酒やラーメンや気になる技術のことを話したらすぐ反応したいです。(弊社の先着お土産情報も早めに気づきたい)
  • botで流してるalert情報や、タスク情報とか、大事なものが多いけど、人目で確認するのは反応遅いしそしてよく漏れるし、いちいち@groupとか使ったら多くの人の手を止めるので、プログラムでうまく拾いたいです。

他にSlackアプリに不満なこと

  • editedやdeletedの内容が気になります。
    • Slackの製作者の意図に反してるかもしれないです。
    • でも気になるものは気になります。
  • チームやチャンネルが増えると、最新のメッセージを全部チェックするのはすごい手作業になっています。
    • まとめにどこかに流したいです。
    • 黒い画面で流して、コードを書きながら見たいです。

Slackに関して書いたもの

様々なbot(遊び系やリマインド系とか)

  • bot書くときの注意事項についてちょっと話します。
  • 前にも話した通りで、botの発言は公式の@group@username以外はアプリ内で見るときはハイライトしてるけど、実際は通知飛ばないです。どうしても通知を飛ばしたい場合は:
    • 1、https://api.slack.com/methods/chat.postMessageas_usertrueにして、発言するのはbotじゃなくて本人になると、普通にハイライトします。
    • 2、公式の@group@usernameを使って確実にハイライトさせます。
  • 公式の@group@usernameを使うときは<@group><@U11223444>を使います。
    • アプリで見るときリンクがついてる@username、裏のコードは<@U11223344>みたいな文字列です。
    • 一回ミスして、APIのドキュメントを読んだら分かることです。
    • チームメンバーのIDは https://api.slack.com/methods/users.list で分かります。
    • 便利に使えるように、ユーザーネームとIDの参照はローカルに保存して、毎日更新する仕組みになっています。
  • ファイルのアップロードとsnippetはbotでできないです。本人でアップロードすることになります。

複数チームの全チャンネルのメッセージをまとめて流します。

  • 実現についてはブログを書きました。
  • リアルタイムのメッセージをもらうAPI: https://api.slack.com/rtm
  • リアルタイムでもらったもの(イベント)の解析: https://api.slack.com/events
    • リアルタイムのAPIは割と分かりやすくて、簡単に書けたけど、もらったイベントの解析は大変なことになりました。
    • 解析に関してはSlackParserを書きました。解析・表示できるように、必要なものだけパーサーします。基本自分用です。
  • 最初はすべての黒い画面で流してみたが、結構見づらいです。流してきたものも思ったよりほとんど見てなかったので、結局アプリのほうで見ています。
  • 次はチャンネルを整理して、業務と強く関わったチャンネルの内容だけ流すことになって、そして流してきたものを必ず全部確認します。
    • そこそこ使えます。

個人用slackで情報をまとめ

  • 特定の内容に関する発言をまとめて個人用Slackに流します。
    • botはアイコンとネームが指定できるので、あらかじめユーザーのネームとアイコンのurlをローカルに保存したら、それを使ってもとの発言者を真似することはできます。本物と似すぎてたまに返事したくなります。
  • 様々なところからラーメン情報やランチ会情報や勉強会情報などを拾って、個人用slackに流しています。
    • 情強感
    • おみやげ情報最高
  • 天気、毎日のスケジュール、メール通知や自分用のツールとか、個人用Slackがだんだん充実してきました。

まとめ

  • Slack APIのドキュメントは充実してて分かりやすいです。
  • botを書くのが楽しいです。
  • 確実に自分の効率を高めるものを書くのも楽しいです。
  • 明日はまた@rymizukiさんです。よろしくお願いします。
11
10
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
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?