プロジェクトの背景
Slack Bot プラグインを使うと、チームは Slack 内で LLM と直接チャットでき、会話がすでに行われている場所に AI を組み込めます。 Slack は堅牢な API を備えたオープンなリアルタイムコミュニケーションプラットフォームで、開発が容易な webhook ベースのイベントシステムも提供しています。このガイドでは、そのシステムを利用して以下の図のような Slack Bot プラグインを作成します。
このガイドでは、よく似た 2 つの用語が登場します。
- Slack Bot:Slack プラットフォーム上のチャットボットで、リアルタイムにやり取りできる仮想ユーザーです。
- Slack Bot プラグイン:Dify アプリケーションと Slack を接続する、Dify マーケットプレイス内のプラグインです。このガイドでは、その構築方法を説明します。
動作の仕組み
- ユーザーが Slack Bot にメッセージを送信する Slack 内のユーザーが Bot にメッセージを送信すると、Slack Bot は即座に Dify プラットフォームへ webhook リクエストを発行します。
- Slack がメッセージを Slack Bot プラグインに転送する Dify プラットフォームが Slack Bot プラグインをトリガーし、プラグインがメッセージを Dify アプリケーションに中継します。これは、メールシステムが受信者のアドレスに配信するのと似ています。この接続は、Slack の API を通じて Slack の webhook アドレスを設定し、プラグインに入力することで確立します。プラグインは Slack リクエストを処理して Dify アプリケーションに転送し、そこで LLM が入力を分析して応答を生成します。
- プラグインが応答を Slack に返す プラグインは Dify アプリケーションから応答を受け取ると、LLM の回答を同じルートで Slack Bot に送り返します。これにより、ユーザーはチャットしている場所でそのまま応答を受け取れます。
前提条件
- Dify プラグイン開発ツール:開発ツールの初期化 を参照してください。
- Python 環境(バージョン 3.12):Python 公式ダウンロードページ を参照してください。
- OAuth トークンを持つ Slack App:以下の手順を参照してください。

- Webhooks を有効にする:

- Slack ワークスペースにアプリをインストールする:

- プラグイン開発のために OAuth トークンを取得する:

1. プラグインの開発
コーディングを始める前に、クイックスタート:拡張プラグインの開発 を読んでいるか、または Dify プラグインを構築した経験があることを確認してください。1.1 プロジェクトの初期化
以下のコマンドを実行して、プラグイン開発環境をセットアップします。extension テンプレートを選択し、Apps と Endpoints の両方の権限を付与します。
プラグイン内で Dify サービスを逆呼び出しする方法の詳細は、逆呼び出し:App を参照してください。

1.2 設定フォームの編集
このプラグインには 2 つの情報が必要です。どの Dify アプリが応答を処理するか、そして Bot の応答を認証する Slack App トークンです。この両方のフィールドをプラグインのフォームに追加します。group ディレクトリ内の YAML ファイル(例:group/slack.yaml)を修正します。フォームのファイル名はプラグイン作成時に入力した情報によって決まるため、パスは適宜調整してください。
サンプルコード:
slack.yaml
type:app-selectorに設定すると、ユーザーはこのプラグインの使用時にメッセージを特定の Dify アプリへ転送できます。scope:chatに設定すると、プラグインは Agent、チャットボット、チャットフローなどのアプリタイプとのみやり取りできます。
endpoints/slack.yaml ファイルで、受信する Slack メッセージを処理できるようリクエストメソッドを POST に変更します。
サンプルコード:
endpoints/slack.yaml
2. 関数コードの編集
endpoints/slack.py ファイルを修正し、以下のコードを追加します。
3. プラグインのデバッグ
Dify プラットフォームに移動し、プラグインのリモートデバッグアドレスとキーを取得します。
.env.example ファイルをコピーして .env にリネームし、デバッグ情報を入力します。
プラグインエンドポイントの設定
Dify のプラグイン管理ページで、新しくインストールしたテストプラグインを見つけ、新しいエンドポイントを作成します。名前と Bot Token を入力し、接続するアプリを選択します。

-
Event Subscriptions を有効にする
上記で生成した POST リクエスト URL を貼り付けます。


-
必要な権限を付与する

4. プラグインの検証
プラグインはself.session.app.chat.invoke を通じて Dify アプリケーションを呼び出し、app_id や query などのパラメータを渡して、応答を Slack Bot に返します。python -m main を再度実行してプラグインを再起動し、Slack に Dify アプリの回答が表示されることを確認します。

5. プラグインのパッケージ化(オプション)
プラグインが正しく動作することを確認したら、以下のコマンドでパッケージ化します。このコマンドは、現在のディレクトリにslack_bot.difypkg ファイル、つまり最終的なプラグインパッケージを生成します。詳細なパッケージ化手順は、ローカルファイルとしてパッケージ化して共有 を参照してください。
6. プラグインの公開(オプション)
これで、Dify マーケットプレイスリポジトリ にアップロードして一般公開できます。公開前に、プラグインが Dify マーケットプレイス公開ガイドライン を満たしていることを確認してください。承認されると、コードはメインブランチにマージされ、プラグインは Dify マーケットプレイス で公開されます。関連リソース
- プラグイン開発の基礎:Dify プラグイン開発の包括的な概要
- プラグイン開発クイックスタートガイド:ゼロからプラグイン開発を始める
- 拡張プラグインの開発:拡張プラグインの開発
- Dify サービスの逆呼び出し:Dify プラットフォームの機能を呼び出す方法
- 逆呼び出し:App:プラットフォーム内でアプリを呼び出す方法
- プラグインの公開:公開プロセス
- Dify マーケットプレイスへの公開:マーケットプレイス公開ガイド
- エンドポイントの詳細定義:エンドポイントのリファレンス
さらに読む
完全な Dify プラグインプロジェクトの例については、GitHub リポジトリ をご覧ください。完全なソースコードと実装の詳細を含む追加のプラグインも見つかります。 プラグイン開発についてさらに学ぶには、以下を参照してください。 クイックスタート: プラグインインターフェースドキュメント:- Manifest ファイルによるプラグイン情報の定義:Manifest 構造
- エンドポイント:エンドポイントのリファレンス
- 逆呼び出し:プラグインから Dify 機能を呼び出す
- 一般仕様:ツール仕様
- モデルスキーマ:モデルスキーマのリファレンス
Edit this page | Report an issue