Nextcloud Talk(プラグイン)

ステータス:プラグイン経由で対応(ウェブフックボット)。ダイレクトメッセージ、ルーム、リアクション、Markdownメッセージに対応。

プラグインが必要

Nextcloud Talkはプラグインとして提供され、コアインストールには含まれていません。

CLI経由でインストール(npmレジストリ):

openclaw plugins install @openclaw/nextcloud-talk

ローカルチェックアウト(gitリポジトリから実行する場合):

openclaw plugins install ./extensions/nextcloud-talk

オンボーディング/設定時にNextcloud Talkを選択し、gitチェックアウトが検出された場合、OpenClawはローカルインストールパスを自動的に提案します。

詳細:プラグイン

クイックセットアップ(初心者向け)

  1. Nextcloud Talkプラグインをインストール。

  2. Nextcloudサーバーでボットを作成:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. 対象ルームの設定でボットを有効化。

  4. OpenClawを設定:

    • 設定:channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • または環境変数:NEXTCLOUD_TALK_BOT_SECRET(デフォルトアカウントのみ)
  5. Gatewayを再起動(またはオンボーディングを完了)。

最小限の設定:

{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      baseUrl: "https://cloud.example.com",
      botSecret: "shared-secret",
      dmPolicy: "pairing",
    },
  },
}

注意事項

  • ボットからDMを開始することはできません。ユーザーが先にボットにメッセージを送る必要があります。
  • ウェブフックURLはGatewayから到達可能である必要があります。プロキシの背後にある場合はwebhookPublicUrlを設定してください。
  • Bot APIではメディアアップロードに非対応。メディアはURLとして送信されます。
  • ウェブフックペイロードではDMとルームが区別されません。ルームタイプの検索を有効にするにはapiUser + apiPasswordを設定してください(設定しない場合、DMはルームとして扱われます)。

アクセス制御(DM)

  • デフォルト:channels.nextcloud-talk.dmPolicy = "pairing"。未知の送信者にはペアリングコードが発行されます。
  • 承認:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • 公開DM:channels.nextcloud-talk.dmPolicy="open" + channels.nextcloud-talk.allowFrom=["*"]
  • allowFromはNextcloudユーザーIDのみマッチします。表示名は無視されます。

ルーム(グループ)

  • デフォルト:channels.nextcloud-talk.groupPolicy = "allowlist"(メンションゲーティング)。
  • channels.nextcloud-talk.roomsでルームを許可リストに追加:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • ルームを許可しない場合は、許可リストを空のままにするか、channels.nextcloud-talk.groupPolicy="disabled"を設定。

機能

機能ステータス
ダイレクトメッセージ対応
ルーム対応
スレッド非対応
メディアURLのみ
リアクション対応
ネイティブコマンド非対応

設定リファレンス(Nextcloud Talk)

完全な設定:設定

プロバイダーオプション:

  • channels.nextcloud-talk.enabled:チャンネル起動の有効/無効。
  • channels.nextcloud-talk.baseUrl:NextcloudインスタンスURL。
  • channels.nextcloud-talk.botSecret:ボットの共有シークレット。
  • channels.nextcloud-talk.botSecretFile:通常ファイルのシークレットパス。シンボリックリンクは拒否。
  • channels.nextcloud-talk.apiUser:ルーム検索用のAPIユーザー(DM検出用)。
  • channels.nextcloud-talk.apiPassword:ルーム検索用のAPI/アプリパスワード。
  • channels.nextcloud-talk.apiPasswordFile:APIパスワードファイルパス。
  • channels.nextcloud-talk.webhookPort:ウェブフックリスナーポート(デフォルト:8788)。
  • channels.nextcloud-talk.webhookHost:ウェブフックホスト(デフォルト:0.0.0.0)。
  • channels.nextcloud-talk.webhookPath:ウェブフックパス(デフォルト:/nextcloud-talk-webhook)。
  • channels.nextcloud-talk.webhookPublicUrl:外部から到達可能なウェブフックURL。
  • channels.nextcloud-talk.dmPolicypairing | allowlist | open | disabled
  • channels.nextcloud-talk.allowFrom:DM許可リスト(ユーザーID)。openには"*"が必要。
  • channels.nextcloud-talk.groupPolicyallowlist | open | disabled
  • channels.nextcloud-talk.groupAllowFrom:グループ許可リスト(ユーザーID)。
  • channels.nextcloud-talk.rooms:ルームごとの設定と許可リスト。
  • channels.nextcloud-talk.historyLimit:グループ履歴の制限(0で無効)。
  • channels.nextcloud-talk.dmHistoryLimit:DM履歴の制限(0で無効)。
  • channels.nextcloud-talk.dms:DM単位の上書き(historyLimit)。
  • channels.nextcloud-talk.textChunkLimit:アウトバウンドテキストチャンクサイズ(文字数)。
  • channels.nextcloud-talk.chunkModelength(デフォルト)またはnewline(長さ分割の前に空行で段落境界を分割)。
  • channels.nextcloud-talk.blockStreaming:このチャンネルのブロックストリーミングを無効化。
  • channels.nextcloud-talk.blockStreamingCoalesce:ブロックストリーミングのコアレスチューニング。
  • channels.nextcloud-talk.mediaMaxMb:受信メディアの上限(MB)。