Developer and self-hosted
Nextcloud Talk
Nextcloud Talk, OpenClaw'u bir Talk webhook botu aracılığıyla kendi sunucunuzda barındırılan bir Nextcloud örneğine bağlayan, indirilebilir bir kanal pluginidir (@openclaw/nextcloud-talk). Doğrudan mesajlar, odalar, tepkiler ve markdown mesajları desteklenir; medya URL olarak gönderilir.
Kurulum
openclaw plugins install @openclaw/nextcloud-talkGüncel resmî sürüm etiketini takip etmek için yalnızca paket belirtimini kullanın. Tam bir sürümü yalnızca tekrarlanabilir bir kurulum gerektiğinde sabitleyin.
Yerel bir çalışma kopyasından (geliştirme iş akışları):
openclaw plugins install ./path/to/local/nextcloud-talk-pluginKurduktan sonra Gateway'i yeniden başlatın. Ayrıntılar: Pluginler
Hızlı kurulum (başlangıç düzeyi)
-
Plugini kurun (yukarıda).
-
Nextcloud sunucunuzda bir bot oluşturun:
bash ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature webhook --feature response --feature reaction--feature responseözelliğini koruyun: bu özellik olmadan giden yanıtlar 401 hatasıyla başarısız olur. Mevcut bir botu./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1ile düzeltin. -
Botu hedef oda ayarlarında etkinleştirin.
-
OpenClaw'u yapılandırın:
- Yapılandırma:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Veya ortam değişkenleri:
NEXTCLOUD_TALK_BOT_SECRET(yalnızca varsayılan hesap)
CLI kurulumu (
--url/--tokenaçık alanların diğer adlarıdır;nc-talkvenckanal diğer adları olarak çalışır):bash openclaw channels add --channel nextcloud-talk \ --url https://cloud.example.com \ --token "<shared-secret>"Eşdeğer açık alanlar:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret "<shared-secret>"Dosya tabanlı gizli bilgi:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret-file /path/to/nextcloud-talk-secret - Yapılandırma:
-
Gateway'i yeniden başlatın (veya kurulumu tamamlayın).
Asgari yapılandırma:
{ channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, },}Notlar
- Botlar doğrudan mesaj başlatamaz. Önce kullanıcının bota mesaj göndermesi gerekir.
- Webhook URL'sine Nextcloud sunucusundan erişilebilmelidir; Gateway bir proxy'nin arkasındaysa
webhookPublicUrldeğerini ayarlayın. Webhook istekleri botun gizli bilgisiyle HMAC-SHA256 kullanılarak imzalanır; geçersiz imzalar reddedilir ve hız sınırlamasına tabi tutulur. - Medya yüklemeleri bot API'si tarafından desteklenmez; giden medya bir
Attachment: <url>satırı olarak eklenir. - Webhook yükü doğrudan mesajlarla odaları birbirinden ayırmaz; oda türü sorgularını etkinleştirmek için
apiUser+apiPassworddeğerlerini ayarlayın (yaklaşık 5 dakika önbelleğe alınır). Bunlar olmadan her konuşma bir oda olarak değerlendirilir. - Giden istekler SSRF korumasından geçer. Güvenilen bir özel/dahili ağdaki Nextcloud ana bilgisayarı için
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: trueile açıkça izin verin. apiUser/apiPasswordvewebhookPublicUrlayarlandığında,openclaw channels statusbotu yoklar veresponseözelliği eksikse uyarır.
Erişim denetimi (doğrudan mesajlar)
- Varsayılan:
channels.nextcloud-talk.dmPolicy = "pairing". Bilinmeyen gönderenlere bir eşleştirme kodu verilir. - Şu yollarla onaylayın:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- Herkese açık doğrudan mesajlar:
channels.nextcloud-talk.dmPolicy="open"vechannels.nextcloud-talk.allowFrom=["*"]. allowFromyalnızca Nextcloud kullanıcı kimlikleriyle eşleşir (küçük harfe dönüştürülür); görünen adlar yok sayılır.
Odalar (gruplar)
- Varsayılan:
channels.nextcloud-talk.groupPolicy = "allowlist"(bahsetme gerektirir). - Oda belirtecinin anahtar olarak kullanıldığı
channels.nextcloud-talk.roomsile odaları izin listesine alın;"*"joker karakterli bir varsayılan ayarlar:
{ channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, },}- Oda başına anahtarlar:
requireMention(varsayılan olarak true),enabled(false odayı devre dışı bırakır),allowFrom(oda başına gönderen izin listesi),tools(araç izin/verme-reddetme geçersiz kılmaları),skills(yüklenen Skills'leri sınırlar),systemPrompt. - Hiçbir odaya izin vermemek için izin listesini boş bırakın veya
channels.nextcloud-talk.groupPolicy="disabled"değerini ayarlayın.
Yetenekler
| Özellik | Durum |
|---|---|
| Doğrudan mesajlar | Destekleniyor |
| Odalar | Destekleniyor |
| İleti dizileri | Desteklenmiyor |
| Medya | Yalnızca URL |
| Tepkiler | Destekleniyor |
| Yerel komutlar | Desteklenmiyor |
Yapılandırma başvurusu (Nextcloud Talk)
Tam yapılandırma: Yapılandırma
Sağlayıcı seçenekleri:
channels.nextcloud-talk.enabled: kanal başlatmayı etkinleştirir/devre dışı bırakır.channels.nextcloud-talk.baseUrl: Nextcloud örneğinin URL'si.channels.nextcloud-talk.botSecret: botun paylaşılan gizli bilgisi (dize veya gizli bilgi başvurusu).channels.nextcloud-talk.botSecretFile: normal dosya türündeki gizli bilginin yolu. Sembolik bağlantılar reddedilir.channels.nextcloud-talk.apiUser: oda sorguları (doğrudan mesaj algılama) ve durum yoklaması için API kullanıcısı.channels.nextcloud-talk.apiPassword: oda sorguları için API/uygulama parolası.channels.nextcloud-talk.apiPasswordFile: API parola dosyasının yolu.channels.nextcloud-talk.webhookPort: webhook dinleyici bağlantı noktası (varsayılan: 8788).channels.nextcloud-talk.webhookHost: webhook ana bilgisayarı (varsayılan: 0.0.0.0).channels.nextcloud-talk.webhookPath: webhook yolu (varsayılan: /nextcloud-talk-webhook).channels.nextcloud-talk.webhookPublicUrl: dışarıdan erişilebilen webhook URL'si.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(varsayılan: pairing).open,allowFrom=["*"]gerektirir.channels.nextcloud-talk.allowFrom: doğrudan mesaj izin listesi (kullanıcı kimlikleri).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(varsayılan: allowlist).channels.nextcloud-talk.groupAllowFrom: oda gönderen izin listesi (kullanıcı kimlikleri); ayarlanmadığındaallowFromdeğerine geri döner.channels.nextcloud-talk.rooms: oda başına ayarlar ve izin listesi (yukarıya bakın).- Statik gönderen erişim gruplarına
allowFromvegroupAllowFromiçindenaccessGroup:<name>ile başvurulabilir. channels.nextcloud-talk.historyLimit: grup geçmişi sınırı (0 devre dışı bırakır).channels.nextcloud-talk.dmHistoryLimit: doğrudan mesaj geçmişi sınırı (0 devre dışı bırakır).channels.nextcloud-talk.dms: kullanıcı kimliğiyle anahtarlanan, doğrudan mesaj başına geçersiz kılmalar (historyLimit).channels.nextcloud-talk.textChunkLimit: karakter cinsinden giden metin parçası boyutu (varsayılan: 4000).channels.nextcloud-talk.streaming.chunkMode: uzunluğa göre parçalara ayırmadan önce boş satırlardan (paragraf sınırlarından) bölmek içinlength(varsayılan) veyanewline.channels.nextcloud-talk.streaming.block.enabled: bu kanal için blok akışını etkinleştirir veya devre dışı bırakır.channels.nextcloud-talk.streaming.block.coalesce: blok akışını birleştirme ayarı.channels.nextcloud-talk.responsePrefix: giden yanıt ön eki.channels.nextcloud-talk.markdown.tables: markdown tablo işleme modu (off | bullets | code | block).channels.nextcloud-talk.mediaMaxMb: gelen medya sınırı (MB).channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: özel/dahili Nextcloud ana bilgisayarlarının SSRF korumasından geçmesine izin verir.channels.nextcloud-talk.accounts.<id>: hesap başına geçersiz kılmalar (aynı anahtarlar);defaultAccountvarsayılanı seçer.NEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDortam değişkenleri yalnızca varsayılan hesaba uygulanır.
İlgili içerikler
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Eşleştirme — doğrudan mesaj kimlik doğrulaması ve eşleştirme akışı
- Gruplar — grup sohbeti davranışı ve bahsetme gereksinimi
- Kanal Yönlendirme — mesajlar için oturum yönlendirmesi
- Güvenlik — erişim modeli ve sağlamlaştırma