はじめに
- Slack Commands でチーム内のだれかになりすますことをしてみたいとおもいます
- 私が所属している会社では私が半年くらい前にはじめました
- ひょんなことから知ることになったElixir(Phoenix Framework)を使いましたが、プログラミング言語はなにでもいいはずです
- 実際最初に書いたのは、SINATRAを利用させていただきました
仕組み
-
/spoof @username hello world
とSlackに投稿されたら用意したサーバに通知がくるようにしておきます(Slack Slash Commandsを使います) - 自分のサーバにまで情報が渡ってくればあとは煮るなり焼くなり好きなようにできます
- まずusers.list APIでアイコン情報を取得します
- 情報はそろいましたので、
カスタムインテグレーションのほうのIncoming Webhookで、なりすまし投稿をします
作品
使用例
- torifukuさん、kaiouさん、ponyさんのSlackがありました。
- ponyさんとkaiouさんが投稿しました。画面はponyさんのSlackです。
- ponyさんは、torifukuさんになりすまして投稿しようとslackコマンドを打ち込みました。
- ponyさんはコマンドを実行したところ、無事なりすますことができました。
- torifukuさんは自分が投稿した覚えの無い内容が表示されているので困惑しました。
- 偽物は右肩に
アプリ
と表示されるので、それで本物と偽物を見破ってください - ステータスアイコンに
アプリ
という絵文字を使う人がでてくると混乱をきわめます
各種設定のヒントなど
users.list APIのためのトークン
https://api.slack.com/apps
|> Create an App
|> Input: App Name and Development Slack Workspace
|> Create App
|> Basic Information
|> Add features and functionality
|> Permissions
|> Select: Access your workspace’s profile information
|> Reinstall App
|> OAuth Access Token
|> Copy
export SLACK_YOUR_WORKSPACE_TOKEN="xoxp-..."
カスタムインテグレーションのほうのIncoming Webhook
https://<your-domain>.slack.com/apps/manage
|> 検索
|> Serach: Incoming Webhook
|> インストール
|> 設定を追加
|> Incoming Web インテグレーションの追加
|> Copy Webhook URL
export SLACK_YOUR_DOMAIN_WEBHOOK_URL="https://hooks.slack.com/services/.../..."
- カスタムインテグレーションのほうがポイントです
- Incoming Webhooksこっちだとユーザー名やチャネル、アイコンなんかを自由に指定できないようです(たぶん)
Slash commandsの設定
https://api.slack.com/apps
|> Basic Information
|> Slash Commands
|> Create New Command
|> Command: /spoof
|> Request URL: https://<your-domain>/api/v1/spoof
|> Short Description: spoof
|> Usage Hint: @username message
|> Save
|> reinstall your app
|> Reinstall App
- これの前にhttpsなサーバを用意してください
- 私はTIME4 VPSを使いました
最後に
- 私は一人楽しんでいるのですが、社内の反応はいまいちでして、禁止令がでました
- 人形劇と揶揄されることもあります
- 私一人だけのチャネルがありましてかろうじてそこでひっそりと息をしています
- 唯一役にたった瞬間があるとすれば、ミーティングの際に、Slackに発言者の言葉をなりすましコマンドでSlackに書き込んで議事録? っぽくした事例くらいです
- しかし、私のタイピングが音が大きいわりには致命的に遅くて長続きしませんでした
- カスタムインテグレーションはどうも削除されるっぽいような警告が表示されているので強制退場かもしれません
- もしおもしろさを感じていただける方がいらっしゃいましたら、お得意の言語/フレームワークをお使いいただいて、ぜひ導入してください
- やるならいましかありません
- 勝者がルールを変える
- ルールを変えたものが勝者