12
3

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 2019-07-13

はじめに

  • Slack Commands でチーム内のだれかになりすますことをしてみたいとおもいます
  • 私が所属している会社では私が半年くらい前にはじめました
  • ひょんなことから知ることになったElixir(Phoenix Framework)を使いましたが、プログラミング言語はなにでもいいはずです
    • 実際最初に書いたのは、SINATRAを利用させていただきました

仕組み

spoof.png

  1. /spoof @username hello worldとSlackに投稿されたら用意したサーバに通知がくるようにしておきます(Slack Slash Commandsを使います)
  2. 自分のサーバにまで情報が渡ってくればあとは煮るなり焼くなり好きなようにできます
  3. まずusers.list APIでアイコン情報を取得します
  4. 情報はそろいましたので、
    カスタムインテグレーションのほうのIncoming Webhookで、なりすまし投稿をします

作品

使用例

  1. torifukuさん、kaiouさん、ponyさんのSlackがありました。
  2. ponyさんとkaiouさんが投稿しました。画面はponyさんのSlackです。
スクリーンショット 2019-07-13 22.45.04.png
  1. ponyさんは、torifukuさんになりすまして投稿しようとslackコマンドを打ち込みました。
スクリーンショット 2019-07-13 22.45.32.png
  1. ponyさんはコマンドを実行したところ、無事なりすますことができました。
スクリーンショット 2019-07-13 22.45.43.png
  1. torifukuさんは自分が投稿した覚えの無い内容が表示されているので困惑しました。
スクリーンショット 2019-07-13 22.46.00.png
  • 偽物は右肩にアプリと表示されるので、それで本物と偽物を見破ってください
  • ステータスアイコンにアプリという絵文字を使う人がでてくると混乱をきわめます

各種設定のヒントなど

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こっちだとユーザー名やチャネル、アイコンなんかを自由に指定できないようです(たぶん)
スクリーンショット 2019-07-13 22.36.36.png - **カスタムインテグレーション**は非推奨っぽいのもポイントのひとつです スクリーンショット 2019-07-13 22.38.29.png

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に書き込んで議事録? っぽくした事例くらいです
  • しかし、私のタイピングが音が大きいわりには致命的に遅くて長続きしませんでした
  • カスタムインテグレーションはどうも削除されるっぽいような警告が表示されているので強制退場かもしれません
  • もしおもしろさを感じていただける方がいらっしゃいましたら、お得意の言語/フレームワークをお使いいただいて、ぜひ導入してください
  • やるならいましかありません
  • 勝者がルールを変える
  • ルールを変えたものが勝者
12
3
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
12
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?