Skip to main content
Pageコンポーネントを使用すると、プラグインはLangBot WebUIのサイドバーにカスタムビジュアルページを登録できます。ページはiframeサンドボックス内で実行され、Page SDKを介してホストと通信し、プラグインのバックエンドAPIを呼び出すことができます。

ユースケース

  • 管理パネル:プラグインに視覚的な設定やデータ管理インターフェースを提供(例:FAQ管理、分析ダッシュボード)
  • データ表示:ランタイムの統計データ、ログ、チャートなどを表示
  • インタラクティブツール:フォーム、エディタなどの対話式インターフェースを提供

ページコンポーネントの追加

プラグインディレクトリでコマンドを実行します:
ページ名を入力すると、components/pages/ディレクトリにページファイルが生成されます:
manifest.yamlにもコンポーネント検出設定が追加されます:

マニフェストファイル:ページ

バックエンド処理

PageコンポーネントのバックエンドハンドラーはPage基底クラスを継承し、handle_apiメソッドを実装してフロントエンドページからのAPIリクエストを処理します。

PageRequestフィールド

PageResponseの構築

フロントエンドページ開発

HTMLファイルにPage SDKを読み込んで、プラグインバックエンドと通信します:

Page SDK API

ダークモード

SDKはページにCSSカスタムプロパティを自動設定します。直接使用できます:

ページi18n

ページディレクトリ内にi18n/ディレクトリを作成し、JSON翻訳ファイルを配置します:
翻訳ファイルはフラットなJSONキーバリューペアです:
HTML要素にdata-i18n属性を追加すると、SDKが自動的にテキストを翻訳します:

完全な例:FAQ管理ページ

FAQエントリのCRUD操作を実装した完全なPageコンポーネントの例です。 バックエンドハンドラーcomponents/pages/manager/manager.py):
フロントエンドページcomponents/pages/manager/index.html)ではlangbot.api()でバックエンドを呼び出します:
完全なサンプルコードはFAQManagerプラグインを参照してください。

注意事項

  • ページはsandbox="allow-scripts allow-forms"のiframe内で実行され、ポップアップを開いたり親ページをナビゲートすることはできません
  • self.pluginでプラグインインスタンスの共有状態にアクセスできます — PageとToolコンポーネントはデータを共有できます
  • PageResponse.ok()PageResponse.fail()を使用してレスポンスを構築し、一貫したフォーマットを確保してください
  • Page SDKの<script>タグは、langbotオブジェクトを使用するコードの前に配置する必要があります