Developer and self-hosted
Nextcloud Talk
Nextcloud Talk, OpenClaw'ı bir Talk Webhook botu üzerinden kendi sunucunuzda barındırılan bir Nextcloud örneğine bağlayan, indirilebilir bir kanal Plugin'idir (@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 izlemek 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-pluginKurulumdan sonra Gateway'i yeniden başlatın. Ayrıntılar: Plugin'ler
Hızlı kurulum (başlangıç)
-
Plugin'i 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 responseseçeneğini koruyun: bu seçenek 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. -
Hedef oda ayarlarında botu etkinleştirin.
-
OpenClaw'ı yapılandırın:
- Yapılandırma:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Veya ortam değişkeni:
NEXTCLOUD_TALK_BOT_SECRET(yalnızca varsayılan hesap)
CLI kurulumu (
--url/--token, açık alanların takma adlarıdır;nc-talkvenckanal takma 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 değer:
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. Kullanıcı önce bota mesaj göndermelidir.
- Webhook URL'sine Nextcloud sunucusundan erişilebilmelidir; Gateway bir proxy arkasındaysa
webhookPublicUrldeğerini ayarlayın. Webhook istekleri, botun gizli değeriyle HMAC-SHA256 kullanılarak imzalanır; geçersiz imzalar reddedilir ve hız sınırına tabi tutulur. - Bot API'si medya yüklemelerini desteklemez; giden medya,
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 oda olarak değerlendirilir. - Giden istekler SSRF korumasından geçer. Güvenilir bir özel/dahili ağdaki Nextcloud ana makinesi için
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: trueayarıyla izin verin. apiUser/apiPasswordvewebhookPublicUrlayarlandığındaopenclaw channels status, botu yoklar veresponseözelliği eksikse uyarır.
Erişim denetimi (doğrudan mesajlar)
- Varsayılan:
channels.nextcloud-talk.dmPolicy = "pairing". Bilinmeyen gönderenler bir eşleştirme kodu alır. - Şunlarla 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 ekleyin;"*"genel 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/ret geçersiz kılmaları),skills(yüklenen Skills'i 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 değeri (dize veya gizli değer başvurusu).channels.nextcloud-talk.botSecretFile: normal dosya türündeki gizli değerin 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 parolası dosyasının yolu.channels.nextcloud-talk.webhookPort: Webhook dinleyici bağlantı noktası (varsayılan: 8788).channels.nextcloud-talk.webhookHost: Webhook ana makinesi (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önderenleri izin listesi (kullanıcı kimlikleri); ayarlanmadığındaallowFromkullanılır.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ğinin anahtar olarak kullanıldığı, doğrudan mesaj başına geçersiz kılmalar (historyLimit).channels.nextcloud-talk.textChunkLimit: giden metin parçalarının karakter cinsinden boyutu (varsayılan: 4000).channels.nextcloud-talk.chunkMode: uzunluğa göre parçalamadan önce boş satırlardan (paragraf sınırlarından) bölmek içinlength(varsayılan) veyanewline.channels.nextcloud-talk.blockStreaming: bu kanal için blok akışını devre dışı bırakır.channels.nextcloud-talk.blockStreamingCoalesce: blok akışı birleştirme ayarı.channels.nextcloud-talk.responsePrefix: giden yanıt ön eki.channels.nextcloud-talk.markdown.tables: markdown tablo oluşturma modu (off | bullets | code | block).channels.nextcloud-talk.mediaMaxMb: gelen medya üst sınırı (MB).channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: özel/dahili Nextcloud ana makinelerinin SSRF korumasını geçmesine izin verir.channels.nextcloud-talk.accounts.<id>: hesap başına geçersiz kılmalar (aynı anahtarlar);defaultAccountvarsayılan hesabı seçer.NEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDortam değişkenleri yalnızca varsayılan hesaba uygulanır.
İlgili
- 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 güvenlik sıkılaştırması