Slack チャンネルにファイルをアップロードする
概要
SlackBot アクションで、Slack チャンネルにファイルをアップロードするカスタムアクションを構築します。
事前準備
クラウドストレージサービスから、ファイルをダウンロードするアクションを追加します。本レシピでは Box の「ファイルをダウンロード」アクションを利用する例を解説します。

アクションを追加し、アプリケーションとして「Box」を選択します。

アクションとして「ファイルをダウンロード」を選択します。

ダウンロードするファイルの ID を入力します。例として、常に同じファイルをダウンロードするよう、特定ファイルの ID を入力しています。

構築手順
先に構築した「ファイルをダウンロード」アクションによってダウンロードしたファイルを、Slack のチャンネルにアップロードするカスタムアクションを構築する手順を解説します。

アクションを追加し、アプリケーションとして「Slack Bot」を選択します。

アクションとして「カスタムアクション」を選択します。

カスタムアクションを設定します。
「カスタムアクション名」にはわかりやすい任意の名前を入力します。
「HTTPメソッド」には POST
を選択します。HTTPメソッドを選択すると、追加の入力フィールドが表示されます。

リクエストパスには /files.upload
と入力します。

リクエストタイプには multipart
と入力します。Slack の特定チャンネルにファイルをアップロードするにためには、この設定が必須となります。

リクエストボディ定義に、「手動追加」をクリックして file
と channel
2つの項目を追加します。

file
スキーマは以下のように設定します。型には File
を指定します。

channels
スキーマは以下のように設定します。型は String
を指定します。

リクエストボディの file
で送信する値を設定します。

Filename
に、Slack にファイルをアップロードしたあと、どようなファイル名でSlack に保存したいかを指定します。ここでは cat
という名前を指定しています。
Content
に、事前準備で作成した「ファイルをダウンロード」アクションによって提供される変数を指定します。Content
をクリックし、変数欄から「ファイルをアップロード」→「ファイル」の順番に選択します。
Content Type
は空白のままにします。

リクエストボディの channel
で送信する値を指定します。
Content
にファイルをアップロードしたい Slack のチャンネル ID を入力します。

これで Slack にファイルをアップロードするカスタムアクションが完成したので、テストを実行してみましょう。

上記アクションをテスト実行すると、「ファイルをダウンロード」アクションでファイルがダウンロードされていることを確認できます。

また、Slack API から返された詳細な出力値を確認し、API コールが成功したかがどうか確認可能です。

Slack の指定したチャンネルにアクセスし、ファイルが正しくアップロードされているかについても確認しましょう。
最終更新