Help us understand the problem. What is going on with this article?

Slack のアカウントを持たざる人(モノ)向けに匿名で投稿できる仕組みを作る

More than 1 year has passed since last update.

はじめに

Slack API で遊んでみたところ、案外簡単に使えそうだったので
Slack API を使って何か作ってみよう!
というのがコトの始まりでした。

作ったもの

入力フォームに文字を入れてボタンを押すだけで特定のワークスペースのチャンネルに匿名で投稿ができるページ

を作りました。
このwebページにアクセス可能な人ならば、だれでもSlackに匿名でメッセージを投稿できます。
↓に動作時のgifを貼り付けておきました。左側がSlackで右側がchromeで開いているwebページです。

slack.gif

主なエッセンスは2つ

  • Slack API の chat.postMessage をラップした URL ベースでアクセスできる API
    • Slack API を使うための token は見せないようにしたかった
    • 投稿先の channelicon_emojiusername は API 利用者が指定できないようにしたかった
  • 上記の API を呼び出すフォーム画面

作り方

とっても簡単です。参考記事等を載せておきますのでご活用ください。

①. Slack API Token の発行

Slack API Token にはレガシーで非推奨Token と推奨Token があるので、そこを認識した上で使いましょう
非推奨Token と推奨Token のお話と、Token の発行方法含めて、下記のページが参考になります。

Slack API 推奨Token について

②. Slack API の メソッドを確認

メソッドのリファレンスを確認して、Slack API でできることを確認してやりたいことの夢を膨らませましょう。

③. Slack API を呼んでみる

② で「これだ!」ってなったメソッドをお近くの HTTP クライアントなどを使って呼んでみましょう。
URL ベースで、引数も丁寧に説明が記載されているので理解しやすいと思います。

④. Slack API をラップする API を作る

ゼロから始める AWS SAM 入門で、サーバレスな API を簡単に作ることができるので、今回は API Gateway + Lambda の構成で API を自作しました。
Lambdaの実装は超シンプルで、受け取ったクエリパラメータの値を使ってSlackのAPIを叩くだけです。

⑤. フォーム画面を作る

④で作成した API を呼び出すフォームを作ります。
HTMLを書いて、簡単な入力フォームとapiを叩くajaxを実装してあげればおしまいです。
image.png
↑これぐらいで十分ですね。

使い所

今回作ったものの特徴はこんな感じです

  • API を叩くだけなので使う人は Slack アカウントを持っていなくても投稿できる
  • 投稿するとき投稿者の情報はないので、必然的に匿名の投稿になる
  • 投稿先の channelicon_emojiusername は API 作成者の方で制限できる

なので、役割を持たせるとするならば、

  • 特定のチャンネルにチームメンバーの意見や要望や質問を集めるご意見箱的な役割をもたせる
  • 自作の API を呼び出すアプリケーションを実装して、オリジナルの bot を作る

このあたりでしょうかね。
今回は

特定のチャンネルにチームメンバーの意見や要望や質問を集めるご意見箱的な役割をもたせる

こちらを作成してみたという感じです。

おわりに

作ってみましたが、まだ実際に運用してはいないので役に立つかどうかはこれから検証しようと思います。
実装自体は非常に簡単なのですが、トークンの取り扱いには一応気を付けたほうがよさそうですね。

簡単だったのでみなさんも何か考えてみてはいかがでしょう?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした