Slack
Memoh Bot を Slack につなぎます。DM の受信、チャンネルやスレッドへの参加、添付ファイルの読み取り、ファイルの送信、ストリーミング返信に対応します。
前提条件
- アプリをインストールできる Slack ワークスペースと、Slack API コンソール へのアクセス。
- Memoh Bot。チャネルはその プラットフォーム タブで設定します。
手順
1. Slack API コンソールでアプリを作成する
- Slack API コンソール を開き、Create New App をクリックします。
- Bot をインストールするワークスペースを選択します。
TIP
アプリの設定ページは開いたままにしておいてください。ステップ 2 から 5 はすべてここで行います。
2. Slack API コンソールで Socket Mode を有効にする
Memoh の Slack アダプターは Socket Mode を使うため、Bot token に加えて app-level token も必要です。
- Basic Information で Socket Mode を有効にします。
- App-Level Token を作成し、scope に
connections:writeをチェックします。 - 生成された token をコピーします。
xapp-で始まります。
3. Slack API コンソールで Bot Token Scopes を追加する
OAuth & Permissions で、Slack アダプターに必要な scope を追加します。
app_mentions:read:チャンネル内での Bot への @メンションを受信channels:history:パブリックチャンネルのメッセージを読むgroups:history:プライベートチャンネルのメッセージを読むim:history:DM を読むmpim:history:グループ DM を読むchat:write:返信とスレッドメッセージを送信files:read:アップロードされたファイルや画像を読むfiles:write:ファイルを送信reactions:write:リアクションの追加/削除
会話名やメタデータを Memoh でより完全に表示したい場合は、次も追加することをおすすめします。
channels:readgroups:readim:readmpim:read
4. Slack API コンソールでイベントを購読する
Event Subscriptions で bot events を有効にし、Slack アダプターが処理する受信イベントを追加します。
app_mentionmessage.channelsmessage.groupsmessage.immessage.mpim
5. Slack API コンソールでアプリをワークスペースにインストールする
- OAuth & Permissions で Install to Workspace をクリックします。
- 権限の確認画面で内容を確認し、承認します。
- Bot User OAuth Token をコピーします。
xoxb-で始まります。
6. Memoh で Slack チャネルを追加する
- Bot の詳細ページを開き、プラットフォーム タブに移動します。
- Add Channel をクリックし、Slack を選択します。
- 次を入力します。
- Bot Token:
xoxb-で始まる token - App-Level Token:
xapp-で始まる token
- Bot Token:
- Save and Enable をクリックします。
7. Slack で Bot を会話に追加する
チャネルを有効にしたあとも、この Slack アプリを使いたい会話に参加させておく必要があります。
- DM:アプリとの DM を開いてメッセージを送信します。
- パブリックチャンネル:Bot をチャンネルに招待します。
- プライベートチャンネル:インストール後に明示的にチャンネルへ招待します。
認証情報
| フィールド | 説明 |
|---|---|
| Bot Token | ワークスペースへのインストール後にコピーする Bot User OAuth Token(xoxb- で始まる)。 |
| App-Level Token | Socket Mode 用に作成した、connections:write scope 付きの token(xapp- で始まる)。 |
2 つの token は、同じ Slack アプリ・同じワークスペースのものでなければなりません。
動作確認
Bot をチャンネルに招待して @メンション付きで /help を送るか、DM で /help を送ります。Bot がコマンド一覧を返せば、チャネルは機能しています。
グループチャット
Slack ではチャンネルがグループチャットに相当します。Bot をパブリックまたはプライベートチャンネルに招待し、@メンションすると会話できます。返信はスレッドで続けられます。スレッドに対応しているのは Slack チャネルだけです。
無効化と認証情報の更新
Bot の プラットフォーム タブから、いつでもこのチャネルを無効化・削除できます。認証情報を更新するときは、Bot Token と App-Level Token のフィールドを更新して保存してください。
よくある質問
なぜ token を 2 つ入力するのですか?
Memoh の Slack アダプターは Socket Mode を使います。xoxb- で始まる Bot token に加えて xapp- で始まる app-level token が必要で、両方が同じ Slack アプリ・同じワークスペースのものでなければなりません。
Bot はメッセージを送れるのに、アップロードされた画像やファイルを読めない
files:read scope が有効になっているか確認してください。
接続はできているのに、受信メッセージがまったく届かない
Event Subscriptions の bot events と、対応する history 系 scope をもう一度確認してください。