本記事はSlackbotでSlack上のファイルをダウンロードする方法について紹介するものです。

・Slackにファイルがアップロードされた時にダウンロードする方法
・Slackにアップロード済みのファイルをダウンロードさせる方法

の2つについて説明します。

通常サーバーからファイルをダウンロードするためにはサーバーに接続してFTPソフトなどを使用してダウンロードする必要があります。
この方法は毎回サーバーに接続する必要があるためやや手間です。

Slackbotにファイルをダウンロードする機能を実装しておけばSlackにファイルをアップロードするだけでサーバーにファイルを転送することができるようになります。

PythonでのSlackbot実装の基本については「SlackbotをPythonで作成しよう」をお読みください。

Slackからファイルをダウンロードする方法

SlackからのファイルダウンロードはWebサイトからのダウンロードと同様に「requests」ライブラリを使用できます。
SlackからダウンロードするためにはAPIトークンを「headers」の「Authorization」に指定する必要があります。

◆ファイルを保存する方法
codecsなどファイル制御ライブラリを使用して書き込めば保存できます。
openのオプションは「wb(バイナリーで書き込み)」を指定します。

codecsの記述例です。

ダウンロードクラスの実装例は以下の通りです。

◆ダウンロードクラスの実装例

Slackにファイルがアップロードされた時にダウンロードする方法

ファイルをSlackにアップロードしたタイミングで自動的にSlackbotにファイルをダウンロードする方法です。

◆実行例
アップロードしたファイルをダウンロード1

アップロードしたファイルをダウンロード2

Slackにアップロード済みのファイルをダウンロードさせる方法

アップロード済みのファイルをダウンロードするためにはファイルIDが必要です。

ファイルIDの取得手順

画像の詳細をクリックします。
画像の詳細

画像のURLの「files」以降の文字列をコピーします。
画像URL

実装手順

アップロード済みのファイルをダウンロードする方法は以下の通りです。
引数には先ほど調べたファイルIDを指定します。

◆実行例
ファイルをダウンロードする

以上、Slackからファイルをダウンロードする方法でした。

◆オススメ記事
SlackbotでファイルをSlackにアップロードする

Slackbot+PythonまとめTOP>>Slackbotの作り方マニュアル〜Python編〜