Zalo Kişisel (resmi olmayan)
Durum: deneysel. Bu entegrasyon, OpenClaw içinde yerelzca-js aracılığıyla bir kişisel Zalo hesabını otomatikleştirir.
Uyarı: Bu resmi olmayan bir entegrasyondur ve hesabın askıya alınmasına/banlanmasına neden olabilir. Riski size aittir.
Birlikte gelen plugin
Zalo Kişisel, mevcut OpenClaw sürümlerinde birlikte gelen bir plugin olarak sunulur, bu nedenle normal paketlenmiş derlemelerde ayrı bir kurulum gerekmez. Daha eski bir derlemede veya Zalo Kişisel’i içermeyen özel bir kurulum kullanıyorsanız, onu manuel olarak kurun:- CLI ile kurun:
openclaw plugins install @openclaw/zalouser - Ya da kaynak kod checkout’undan:
openclaw plugins install ./path/to/local/zalouser-plugin - Ayrıntılar: Plugins
zca/openzca CLI ikili dosyası gerekmez.
Hızlı kurulum (başlangıç)
- Zalo Kişisel plugin’inin kullanılabilir olduğundan emin olun.
- Mevcut paketlenmiş OpenClaw sürümleri bunu zaten birlikte sunar.
- Eski/özel kurulumlar bunu yukarıdaki komutlarla manuel olarak ekleyebilir.
- Giriş yapın (QR, Gateway makinesinde):
openclaw channels login --channel zalouser- QR kodunu Zalo mobil uygulamasıyla tarayın.
- Kanalı etkinleştirin:
- Gateway’i yeniden başlatın (veya kurulumu tamamlayın).
- DM erişimi varsayılan olarak pairing kullanır; ilk temas sırasında pairing kodunu onaylayın.
Nedir?
- Tamamen
zca-jsaracılığıyla süreç içinde çalışır. - Gelen mesajları almak için yerel olay dinleyicileri kullanır.
- Yanıtları doğrudan JS API üzerinden gönderir (metin/medya/bağlantı).
- Zalo Bot API’nin mevcut olmadığı “kişisel hesap” kullanım senaryoları için tasarlanmıştır.
Adlandırma
Kanal kimliğizalouser olarak belirlenmiştir; böylece bunun kişisel bir Zalo kullanıcı hesabını (resmi olmayan) otomatikleştirdiği açık olur. zalo adını gelecekte olası resmi bir Zalo API entegrasyonu için ayırıyoruz.
Kimlikleri bulma (dizin)
Eşleri/grupları ve kimliklerini keşfetmek için dizin CLI’ını kullanın:Sınırlar
- Giden metin ~2000 karaktere bölünür (Zalo istemci sınırları).
- Streaming varsayılan olarak engellenir.
Erişim denetimi (DM’ler)
channels.zalouser.dmPolicy şunları destekler: pairing | allowlist | open | disabled (varsayılan: pairing).
channels.zalouser.allowFrom, kullanıcı kimliklerini veya adlarını kabul eder. Kurulum sırasında adlar, plugin’in süreç içi kişi araması kullanılarak kimliklere çözülür.
Şununla onaylayın:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Grup erişimi (isteğe bağlı)
- Varsayılan:
channels.zalouser.groupPolicy = "open"(gruplara izin verilir). Ayarlanmamışken varsayılanı geçersiz kılmak içinchannels.defaults.groupPolicykullanın. - Şununla bir allowlist ile sınırlandırın:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(anahtarlar kararlı grup kimlikleri olmalıdır; mümkün olduğunda adlar başlangıçta kimliklere çözülür)channels.zalouser.groupAllowFrom(izin verilen gruplarda hangi göndericilerin botu tetikleyebileceğini kontrol eder)
- Tüm grupları engelleyin:
channels.zalouser.groupPolicy = "disabled". - Yapılandırma sihirbazı, grup allowlist’leri isteyebilir.
- Başlangıçta OpenClaw, allowlist’lerdeki grup/kullanıcı adlarını kimliklere çözer ve eşlemeyi günlüğe kaydeder.
- Grup allowlist eşleştirmesi varsayılan olarak yalnızca kimlik üzerinden yapılır. Çözümlenmemiş adlar,
channels.zalouser.dangerouslyAllowNameMatching: trueetkinleştirilmediği sürece kimlik doğrulama için yok sayılır. channels.zalouser.dangerouslyAllowNameMatching: true, değiştirilebilir grup adı eşleştirmesini yeniden etkinleştiren acil durum uyumluluk modudur.groupAllowFromayarlanmamışsa, çalışma zamanı grup gönderici kontrolleri içinallowFromdeğerine geri döner.- Gönderici kontrolleri hem normal grup mesajları hem de kontrol komutları için geçerlidir (örneğin
/new,/reset).
Grup bahsetme geçidi
channels.zalouser.groups.<group>.requireMention, grup yanıtlarının bahsetme gerektirip gerektirmediğini kontrol eder.- Çözümleme sırası: tam grup kimliği/adı -> normalize edilmiş grup slug’ı ->
*-> varsayılan (true). - Bu hem allowlist’e alınmış gruplar hem de açık grup modu için geçerlidir.
- Bir bot mesajını alıntılamak, grup etkinleştirmesi için örtük bir bahsetme sayılır.
- Yetkili kontrol komutları (örneğin
/new) bahsetme geçidini atlayabilir. - Bir grup mesajı bahsetme gerektiği için atlandığında, OpenClaw bunu bekleyen grup geçmişi olarak saklar ve sonraki işlenen grup mesajına dahil eder.
- Grup geçmişi sınırı varsayılan olarak
messages.groupChat.historyLimitdeğeridir (geri dönüş:50). Bunu hesap başınachannels.zalouser.historyLimitile geçersiz kılabilirsiniz.
Çoklu hesap
Hesaplar, OpenClaw durumundakizalouser profillerine eşlenir. Örnek:
Yazıyor, tepkiler ve teslim alındıları
- OpenClaw, bir yanıt göndermeden önce bir yazıyor olayı gönderir (best-effort).
- Mesaj tepki eylemi
react, kanal eylemlerindezalouseriçin desteklenir.- Bir mesajdan belirli bir tepki emojisini kaldırmak için
remove: truekullanın. - Tepki semantiği: Reactions
- Bir mesajdan belirli bir tepki emojisini kaldırmak için
- Olay meta verileri içeren gelen mesajlar için OpenClaw, teslim edildi + görüldü alındıları gönderir (best-effort).
Sorun giderme
Giriş kalıcı olmuyor:openclaw channels status --probe- Yeniden giriş yapın:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
allowFrom/groupAllowFrom/groupsiçinde sayısal kimlikler veya tam arkadaş/grup adları kullanın.
- Eski harici
zcasüreç varsayımlarını kaldırın. - Kanal artık harici CLI ikili dosyaları olmadan tamamen OpenClaw içinde çalışır.
İlgili
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Pairing — DM kimlik doğrulaması ve pairing akışı
- Gruplar — grup sohbeti davranışı ve bahsetme geçidi
- Kanal Yönlendirme — mesajlar için oturum yönlendirmesi
- Güvenlik — erişim modeli ve sağlamlaştırma