Slack チャンネルにファイルをアップロードする

概要

SlackBot アクションで、Slack チャンネルにファイルをアップロードするカスタムアクションを構築します。

事前準備

クラウドストレージサービスから、ファイルをダウンロードするアクションを追加します。本レシピでは Box の「ファイルをダウンロード」アクションを利用する例を解説します。

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

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

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

構築手順

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

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

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

カスタムアクションを設定します。

「カスタムアクション名」にはわかりやすい任意の名前を入力します。

「HTTPメソッド」には POST を選択します。HTTPメソッドを選択すると、追加の入力フィールドが表示されます。

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

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

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

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

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

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

Filename に、Slack にファイルをアップロードしたあと、どようなファイル名でSlack に保存したいかを指定します。ここでは cat という名前を指定しています。

Content に、事前準備で作成した「ファイルをダウンロード」アクションによって提供される変数を指定します。Content をクリックし、変数欄から「ファイルをアップロード」→「ファイル」の順番に選択します。

Content Type は空白のままにします。

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

Content にファイルをアップロードしたい Slack のチャンネル ID を入力します。

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

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

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

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

最終更新