Regional platforms
Zalo kişisel
Durum: deneysel. Bu entegrasyon, harici bir CLI ikili dosyası olmadan, işlem içinde yerel zca-js aracılığıyla bir kişisel Zalo hesabını otomatikleştirir.
Kurulum
Zalo Personal, çekirdekle birlikte sunulmayan resmî bir harici plugindir. Kullanmadan önce yükleyin:
openclaw plugins install @openclaw/zalouser- Bir sürümü sabitleyin:
openclaw plugins install @openclaw/zalouser@<version> - Kaynak kod deposundan:
openclaw plugins install ./path/to/local/zalouser-plugin - Ayrıntılar: Pluginler
Hızlı kurulum
- Plugini yükleyin (yukarıda).
- Oturum açın (QR ile, Gateway makinesinde):
openclaw channels login --channel zalouser- QR kodunu Zalo mobil uygulamasıyla tarayın.
- Kanalı etkinleştirin:
{ channels: { zalouser: { enabled: true, dmPolicy: "pairing", }, },}- Gateway'i yeniden başlatın (veya kurulumu tamamlayın).
- DM erişimi varsayılan olarak eşleştirme kullanır; ilk iletişimde eşleştirme kodunu onaylayın.
Nedir?
- Tamamen
zca-jskitaplığı aracılığıyla işlem içinde çalışır (haricizca/openzcaikili dosyası yoktur). - Gelen mesajları almak için yerel olay dinleyicilerini (
message,error) kullanır. - Yanıtları doğrudan JS API üzerinden gönderir (metin/medya/bağlantı).
- Zalo Bot API'nin kullanılamadığı "kişisel hesap" kullanım durumları için tasarlanmıştır.
Adlandırma
Kanal kimliği, bunun kişisel bir Zalo kullanıcı hesabını (resmî olmayan şekilde) otomatikleştirdiğini açıkça belirtmek için zalouser olarak belirlenmiştir. zalo, gelecekteki olası bir resmî Zalo API entegrasyonu için ayrılmıştır.
Kimlikleri bulma (dizin)
openclaw directory self --channel zalouseropenclaw directory peers list --channel zalouser --query "name"openclaw directory groups list --channel zalouser --query "work"Sınırlar
- Giden metin, 2000 karakterlik parçalara bölünür (Zalo istemci sınırı).
- Akış desteklenmez.
- Tamamlanan gelen mesaj kimlikleri 30 gün boyunca saklanır ve hesap başına en son 1000 kayıtla sınırlandırılır.
Gelen mesaj dayanıklılığı
OpenClaw, her ham zca-js mesaj geri çağrısını işlemeden önce saklar. Bekleyen mesajlar bir Gateway yeniden başlatmasından sonra hesap kuyruğundan devam eder ve işleme, doğrudan sohbet veya grup başına sıralı kalır.
zca-js soket dinleyicisi, teslimat onayı sunmaz veya yeniden bağlandıktan sonra eski mesajları otomatik olarak yeniden oynatmaz. Bu nedenle dayanıklı kuyruk, bir geri çağrı OpenClaw'a ulaştıktan sonraki yerel çökme aralığını korur; soketin hiç teslim etmediği bir mesajı kurtaramaz. Yeniden oynatma mezar taşları, çoğunlukla aynı Zalo mesaj kimliğine sahip tekrarlanan bir geri çağrıya karşı koruma sağlar.
Erişim denetimi (DM'ler)
channels.zalouser.dmPolicy: pairing | allowlist | open | disabled (varsayılan: pairing).
channels.zalouser.allowFrom, kararlı Zalo kullanıcı kimliklerini kullanmalıdır. Ayrıca statik gönderen erişim gruplarına (accessGroup:<name>) başvurabilir. Etkileşimli kurulum sırasında girilen adlar, pluginin işlem içi kişi araması kullanılarak kimliklere çözümlenebilir.
Yapılandırmada ham bir ad kalırsa başlangıçta yalnızca channels.zalouser.dangerouslyAllowNameMatching: true etkinleştirildiğinde çözümlenir. Bu açık onay olmadan çalışma zamanı gönderen kontrolleri yalnızca kimlikleri kullanır ve ham adlar yetkilendirme sırasında yok sayılır.
Şu yollarla onaylayın:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Grup erişimi (isteğe bağlı)
- Varsayılan:
channels.zalouser.groupPolicy = "allowlist"(gruplar açık bir izin listesi girdisi gerektirir). - Tüm grupları açın:
channels.zalouser.groupPolicy = "open". - Tüm grupları engelleyin:
channels.zalouser.groupPolicy = "disabled". groupPolicy = "allowlist"ile:channels.zalouser.groupsanahtarları kararlı grup kimlikleri olmalıdır; adlar yalnızcachannels.zalouser.dangerouslyAllowNameMatching: trueetkinleştirildiğinde başlangıçta kimliklere çözümlenir.channels.zalouser.groupAllowFrom, izin verilen gruplardaki hangi gönderenlerin botu tetikleyebileceğini denetler; statik gönderen erişim gruplarınaaccessGroup:<name>ile başvurulabilir.
- Yapılandırma sihirbazı, grup izin listelerini sorabilir.
- Grup izin listesi eşleştirmesi varsayılan olarak yalnızca kimlikleri kullanır.
channels.zalouser.dangerouslyAllowNameMatching: trueetkinleştirilmediği sürece çözümlenmemiş adlar yetkilendirme sırasında yok sayılır. channels.zalouser.dangerouslyAllowNameMatching: true, değiştirilebilir başlangıç adı çözümlemesini ve çalışma zamanı grup adı eşleştirmesini yeniden etkinleştiren acil durum uyumluluk modudur.groupAllowFrom, normal grup mesajları içinallowFromdeğerine geri dönmez: izin listesindeki bir grupta bunu boş bırakmak, grubu tüm gönderenlere açar. Yetkili denetim komutları (örneğin/new) istisnadır; komut gönderen kontrolleri,groupAllowFromboş olduğundaallowFromdeğerine geri döner.
Örnek:
{ channels: { zalouser: { groupPolicy: "allowlist", groupAllowFrom: ["1471383327500481391"], groups: { "123456789": { enabled: true }, "Work Chat": { enabled: true }, }, }, },}Grup bahsetme geçidi
channels.zalouser.groups.<group>.requireMention, grup yanıtlarının bahsetme gerektirip gerektirmediğini denetler.- Çözümleme sırası: grup kimliği ->
group:<id>diğer adı -> grup adı/kısa adı (ada dayalı adaylar yalnızcadangerouslyAllowNameMatching: trueolduğunda uygulanır) ->*-> varsayılan (true). - Hem izin listesindeki gruplara hem de açık grup moduna uygulanır.
- Bir bot mesajını alıntılamak, grup etkinleştirmesi için örtük bir bahsetme sayılır.
- Yetkili denetim komutları (örneğin
/new) bahsetme geçidini atlayabilir. - Bir grup mesajı bahsetme gerektiği için atlandığında OpenClaw, mesajı bekleyen grup geçmişi olarak saklar ve bir sonraki işlenen grup mesajına ekler.
- Grup geçmişi sınırı:
channels.zalouser.historyLimit, ardındanmessages.groupChat.historyLimit, ardından50yedek değeri.
Örnek:
{ channels: { zalouser: { groupPolicy: "allowlist", groups: { "*": { enabled: true, requireMention: true }, "Work Chat": { enabled: true, requireMention: false }, }, }, },}Çoklu hesap
Hesaplar, OpenClaw durumundaki zalouser profilleriyle eşlenir. Örnek:
{ channels: { zalouser: { enabled: true, defaultAccount: "default", accounts: { work: { enabled: true, profile: "work" }, }, }, },}Ortam değişkenleri
Profil seçimi ortam değişkenlerinden de gelebilir:
| Değişken | Amaç |
|---|---|
ZALOUSER_PROFILE |
Kanal veya hesap yapılandırmasında profile ayarlanmadığında kullanılacak profil adı. |
ZCA_PROFILE |
Yalnızca ZALOUSER_PROFILE ayarlanmadığında kullanılan eski yedek değer. |
Profil adları, OpenClaw durumunda kayıtlı Zalo oturum açma kimlik bilgilerini seçer. Çözümleme sırası:
- Yapılandırmadaki açık
profile. ZALOUSER_PROFILE.ZCA_PROFILE.- Varsayılan olmayan hesaplar için hesap kimliği veya varsayılan hesap için
default.
Çoklu hesap kurulumlarında, tek bir ortam değişkeninin birden fazla hesabın aynı oturum açma oturumunu paylaşmasına yol açmaması için yapılandırmadaki her hesapta profile ayarlamayı tercih edin.
Yazma göstergesi, tepkiler ve teslimat onayları
- OpenClaw, bir yanıtı göndermeden önce yazma olayı gönderir (mümkün olan en iyi şekilde).
- Mesaj tepkisi eylemi
react, kanal eylemlerindekizalouseriçin desteklenir.- Bir mesajdan belirli bir tepki emojisini kaldırmak için
remove: truekullanın. - Tepki semantiği: Tepkiler
- Bir mesajdan belirli bir tepki emojisini kaldırmak için
- OpenClaw, olay meta verilerini içeren gelen mesajlar için teslim edildi + görüldü onayları gönderir (mümkün olan en iyi şekilde).
Sorun giderme
Oturum açık kalmıyor:
openclaw channels status --probe- Yeniden oturum açın:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
İzin listesi/grup adı çözümlenmedi:
allowFrom/groupAllowFromiçinde sayısal kimlikler,groupsiçinde ise kararlı grup kimlikleri kullanın. Tam arkadaş/grup adlarını özellikle kullanmanız gerekiyorsachannels.zalouser.dangerouslyAllowNameMatching: trueseçeneğini etkinleştirin.
Eski bir harici zca/CLI tabanlı kurulumdan yükseltme yapıldı:
- Harici
zcaişlemine ilişkin tüm varsayımları kaldırın; kanal artık harici bir CLI ikili dosyası olmadan tamamenzca-jsaracılığıyla işlem içinde çalışır.
İlgili içerikler
- Kanallara Genel Bakış - desteklenen tüm kanallar
- Eşleştirme - DM kimlik doğrulaması ve eşleştirme akışı
- Gruplar - grup sohbeti davranışı ve bahsetme geçidi
- Kanal Yönlendirme - mesajlar için oturum yönlendirmesi
- Güvenlik - erişim modeli ve güçlendirme