Slack バックアップイメージ画像

Slack アプリ を 作成して作業効率をアップしませんか?
本記事では、作業を自動化に役立つ、Slack アプリ の作成方法について、手順をご紹介していきます。

Slack アプリ の作成に挑戦してみよう

作業の流れは下記のとおりです。

①アプリ( SlackApp )を作成
②権限設定
③インストール
④ Slack apiを使ってアプリを作成

①アプリ( SlackApp )を作成

https://api.slack.com/apps 」にアクセスし、[Create an App]を選択して新しいアプリケーションを作成します。
[Create New App]のアイコンが表示される場合はそちらにアクセスします

画像クリックで拡大表示

[Form scratch]を選択します。

画像クリックで拡大表示

AppNameの入力と作成するWorkspaceを選択後、[Create App]をクリックするとアプリケーションが作成されます。

画像クリックで拡大表示

Workspaceに複数所属していて、バックアップしたいWorkspaceが「Pick a workspece to develop your app in:」で選択できない場合は、「Sign Into a different workspace」で別のWorkspaceにサインインした上で、①から再度実施してください。

②権限設定

アプリ( SlackApp )にBotユーザ権限を設定します。
作成したばかりのアプリケーションには何も権限がありません。
権限がなければ何も出来ないので、まずは処理の実行に必要な権限を与えます。
今回の機能で必要な権限は、
・チャンネルのメッセージを取得するAPI「 conversations.history 」の実行権限

行う処理によって必要となるAPIの権限は、 SlackAPI 「 https://api.slack.com/methods 」のドキュメントから確認が出来ます。

conversations.history を実行するためには以下の赤枠の権限が必要になります。

画像クリックで拡大表示

[OAuth & Permissions]に移動し、Bot Token Scopesに必要な権限を追加します。

画像クリックで拡大表示

③インストール

[Install App]に移動し、[Install to Workspace]をクリックします。
その後の承認画面で承認をすればインストールされます。

画像クリックで拡大表示

インストールが完了すると、Bot User OAuth Tokenが表示されます。(Botユーザから自動で処理を行う際、このBot User OAuth Tokenが必要になります)

※Bot User OAuth Tokenを忘れてしまった場合は、「 https://api.slack.com/apps 」の「OAuth & Permissions」メニューで確認することができます。

④ Slack api を使ってアプリを作成

アプリ( SlackApp )を作成した後は、アプリ( SlackApp )をコントロールするためのアプリを作成してみます。
今回の例では、Python プログラムから、 SlackAPI 「 https://slack.com/api/conversations.history 」を実行することでアプリ( SlackApp )をコントロールしてみます。

下記がサンプルコードとなり、SlackAPIでメッセージやファイルを取得してみます。SlackAPI で取得したデータには投稿時刻やメッセージ情報が含まれています。

import requests
import json
import datetime

SLACK_ACCESS_TOKEN = "xoxb-xxxxxxxxx"  # Bot User OAuth Token を指定します
CHANNEL_ID = 'Cxxxxxxxx' # channel Id を指定します

headers = {
    'Authorization': 'Bearer %s' % SLACK_ACCESS_TOKEN
}

# 出力するデータのリスト
writeTextList = []

# メッセージを取得するAPIを実行します
conversationsHistoryUrl = "https://slack.com/api/conversations.history?channel=" + CHANNEL_ID
content = requests.get(conversationsHistoryUrl, headers=headers).content
data = json.loads(content)

# データをデコードし、リストへ格納する
messagesList = data["messages"]
for messages in messagesList:
    messagesText = messages["text"]

    messagesTs = messages["ts"]
    dt = datetime.datetime.fromtimestamp(float(messages["ts"]))
    
    writeText = "{}\t{}".format(dt, messagesText)
    writeTextList.append(writeText)

# リストのデータ(取得したメッセージ)をファイルへ出力する
if 0 != len(writeTextList):

    obj = map(lambda x: x + "\n", writeTextList)
    with open("message.txt", "a", encoding="utf-8", newline="\n") as f:
        f.writelines(obj)

上記のプログラムに、
・収集するデータの期間
・エラーハンドリング (エラー応答時の処理)
・取得対象のデータが大量にあった場合の考慮 (※)
といった処理を追加すると、アプリケーションの完成です。

※一度に取得できるデータの量は API で決まっていますので、「取得対象のデータが大量にある場合」複数回にわけてAPIを起動する等の処理も必要です。

作成したプログラムを Windows タスクスケジューラ へ登録すると、定期的に必要なデータをファイルへ出力(保存)する作業を、自動で行うことができます。

上記処理を手動で行う場合の手順を紹介していますので、イメージがわきづらい場合は下記も参照してみてください。

 
関連記事

上記処理を手動で行う場合の手順は「Slack に保存されているメッセージやファイルを バックアップ する方法」で紹介しています。

アプリ作成まとめ

 今回紹介させて頂いた Slack アプリケーション 機能は、フリープラン でも標準で使用することができます。今回ご紹介した API 以外にも、さまざまな機能のAPIが用意されていますので、自分でアプリケーションを作成してみたいという方は、ぜひ一度、挑戦してみてくださいね。

Slack アプリ【 バックアップツール for Slack 】

指定した収集日の特定チャンネルのメッセージとファイルを、PC上に 一括収集 ( バックアップ )するツールです。

Windowsタスクスケジューラ に本ツールを登録しておくことで、毎日決まった時間に自動でデータのバックアップを行うこともできます。

弊社 社内業務 の 自動化 用に作成したツールで、シンプルで使用しやすいと好評です!

バックアップ先やバックアップするチャンネルを指定することができます

30日間無料お試し
バックアップツール for Slack

バックアップツール for Slack は
30日間無料お試しが可能です。
お試しする方はお問い合わせよりお願いします。

Slack アプリ・バックアップツール for Slack お問い合わせ

    お問い合わせ種別(必須)

    バックアップツール無料お試しバックアップツールSlackアプリについてその他

    お名前(必須)

    会社名(必須)

    E-mail(必須)

    電話番号(必須)

    お問い合わせ詳細

    個人情報の取り扱い方針についてはこちらを御覧ください。

    また、ご入力頂いたメールアドレス宛に、広告を含むご案内のメールをお送りする場合があります。

    同意後、記載内容をご確認の上、送信ボタンを押してください。

    このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。