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で必要な権限を追加します。
バックアップツール for Slack の設定で手順を行っている場合は、次の権限を追加します
channels:history
groups:history
reactions:write
reactions:read
files:read
③インストール
[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」メニューで確認することができます。
バックアップツール for Slack の設定で手順がここまで進んだ場合は事前設定の最初の手順が完了したため、次の手順「Slack ワークスペースに登録」へ戻り続きを実施します。
④ 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 】
30日間無料お試し
バックアップツール for Slack
バックアップツール for Slack は
30日間無料お試しが可能です。
お試しする方はお問い合わせよりお願いします。
Slack アプリ・バックアップツール for Slack お問い合わせ
- 投稿タグ
- Slack