Developer and self-hosted

Nextcloud Talk

وضعیت: Plugin همراه (بات Webhook). پیام‌های مستقیم، اتاق‌ها، واکنش‌ها و پیام‌های markdown پشتیبانی می‌شوند.

Plugin همراه

Nextcloud Talk در نسخه‌های فعلی OpenClaw به‌صورت Plugin همراه عرضه می‌شود، بنابراین ساخت‌های بسته‌بندی‌شدهٔ معمولی به نصب جداگانه نیاز ندارند.

اگر از یک ساخت قدیمی‌تر یا نصب سفارشی استفاده می‌کنید که Nextcloud Talk را شامل نمی‌شود، بستهٔ npm را مستقیماً نصب کنید:

نصب از طریق CLI (رجیستری npm):

openclaw plugins install @openclaw/nextcloud-talk

از بستهٔ بدون نسخهٔ مشخص استفاده کنید تا برچسب انتشار رسمی فعلی را دنبال کند. فقط زمانی یک نسخهٔ دقیق را پین کنید که به نصب قابل بازتولید نیاز دارید.

چک‌اوت محلی (هنگام اجرا از یک مخزن git):

openclaw plugins install ./path/to/local/nextcloud-talk-plugin

جزئیات: Plugins

راه‌اندازی سریع (مبتدی)

  1. مطمئن شوید Plugin مربوط به Nextcloud Talk در دسترس است.

    • نسخه‌های بسته‌بندی‌شدهٔ فعلی OpenClaw از قبل آن را همراه دارند.
    • نصب‌های قدیمی‌تر/سفارشی می‌توانند آن را با فرمان‌های بالا به‌صورت دستی اضافه کنند.
  2. روی سرور Nextcloud خود، یک بات ایجاد کنید:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
    
  3. بات را در تنظیمات اتاق هدف فعال کنید.

  4. OpenClaw را پیکربندی کنید:

    • پیکربندی: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • یا env: NEXTCLOUD_TALK_BOT_SECRET (فقط حساب پیش‌فرض)

    راه‌اندازی CLI:

    openclaw channels add --channel nextcloud-talk \
      --url https://cloud.example.com \
      --token "<shared-secret>"
    

    فیلدهای صریح معادل:

    openclaw channels add --channel nextcloud-talk \
      --base-url https://cloud.example.com \
      --secret "<shared-secret>"
    

    رمز مبتنی بر فایل:

    openclaw channels add --channel nextcloud-talk \
      --base-url https://cloud.example.com \
      --secret-file /path/to/nextcloud-talk-secret
    
  5. Gateway را بازراه‌اندازی کنید (یا راه‌اندازی را تمام کنید).

پیکربندی حداقلی:

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

نکات

  • بات‌ها نمی‌توانند DMها را آغاز کنند. کاربر باید ابتدا به بات پیام بدهد.
  • URL مربوط به Webhook باید برای Gateway قابل دسترسی باشد؛ اگر پشت پراکسی هستید، webhookPublicUrl را تنظیم کنید.
  • بارگذاری رسانه توسط API بات پشتیبانی نمی‌شود؛ رسانه به‌صورت URL ارسال می‌شود.
  • بار دادهٔ Webhook بین DMها و اتاق‌ها تمایز قائل نمی‌شود؛ برای فعال‌سازی جست‌وجوی نوع اتاق، apiUser + apiPassword را تنظیم کنید (در غیر این صورت DMها به‌عنوان اتاق در نظر گرفته می‌شوند).

کنترل دسترسی (DMها)

  • پیش‌فرض: channels.nextcloud-talk.dmPolicy = "pairing". فرستندگان ناشناس یک کد جفت‌سازی دریافت می‌کنند.
  • تأیید از طریق:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk &lt;CODE&gt;
  • DMهای عمومی: channels.nextcloud-talk.dmPolicy="open" به‌همراه channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom فقط با شناسه‌های کاربری Nextcloud تطبیق داده می‌شود؛ نام‌های نمایشی نادیده گرفته می‌شوند.

اتاق‌ها (گروه‌ها)

  • پیش‌فرض: channels.nextcloud-talk.groupPolicy = "allowlist" (محدود به منشن).
  • اتاق‌ها را با channels.nextcloud-talk.rooms در allowlist قرار دهید:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • برای مجاز نکردن هیچ اتاقی، allowlist را خالی نگه دارید یا channels.nextcloud-talk.groupPolicy="disabled" را تنظیم کنید.

قابلیت‌ها

ویژگی وضعیت
پیام‌های مستقیم پشتیبانی می‌شود
اتاق‌ها پشتیبانی می‌شود
رشته‌ها پشتیبانی نمی‌شود
رسانه فقط URL
واکنش‌ها پشتیبانی می‌شود
فرمان‌های بومی پشتیبانی نمی‌شود

مرجع پیکربندی (Nextcloud Talk)

پیکربندی کامل: پیکربندی

گزینه‌های ارائه‌دهنده:

  • channels.nextcloud-talk.enabled: فعال/غیرفعال کردن راه‌اندازی کانال.
  • channels.nextcloud-talk.baseUrl: URL نمونهٔ Nextcloud.
  • 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: پورت شنوندهٔ Webhook (پیش‌فرض: 8788).
  • channels.nextcloud-talk.webhookHost: میزبان Webhook (پیش‌فرض: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: مسیر Webhook (پیش‌فرض: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: URL مربوط به Webhook که از بیرون قابل دسترسی است.
  • channels.nextcloud-talk.dmPolicy: pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom: allowlist مربوط به DM (شناسه‌های کاربری). open به "*" نیاز دارد.
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: allowlist گروه (شناسه‌های کاربری).
  • channels.nextcloud-talk.rooms: تنظیمات و allowlist برای هر اتاق.
  • channels.nextcloud-talk.historyLimit: محدودیت تاریخچهٔ گروه (0 غیرفعال می‌کند).
  • channels.nextcloud-talk.dmHistoryLimit: محدودیت تاریخچهٔ DM (0 غیرفعال می‌کند).
  • channels.nextcloud-talk.dms: بازنویسی‌های هر DM (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: اندازهٔ قطعهٔ متن خروجی (نویسه‌ها).
  • channels.nextcloud-talk.chunkMode: length (پیش‌فرض) یا newline برای تقسیم بر اساس خطوط خالی (مرزهای پاراگراف) پیش از قطعه‌بندی بر اساس طول.
  • channels.nextcloud-talk.blockStreaming: غیرفعال کردن پخش جریانی بلوکی برای این کانال.
  • channels.nextcloud-talk.blockStreamingCoalesce: تنظیم همجوشی پخش جریانی بلوکی.
  • channels.nextcloud-talk.mediaMaxMb: سقف رسانهٔ ورودی (MB).

مرتبط