Regional platforms
Zalo kişisel
Durum: deneysel. Bu entegrasyon, harici bir CLI ikili dosyası olmadan, süreç 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- Belirli 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ı yapılandırma
- 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 yapılandırmayı tamamlayın).
- DM erişimi varsayılan olarak eşleştirme kullanır; ilk iletişimde eşleştirme kodunu onaylayın.
Nedir?
- Tamamen süreç içinde
zca-jskütüphanesi aracılığıyla çalışır (haricizca/openzcaikili dosyası yoktur). - Gelen mesajları almak için yerel olay dinleyicilerini (
message,error) kullanır. - Yanıtları doğrudan JS API aracılığıyla gönderir (metin/medya/bağlantı).
- Zalo Bot API'nin kullanılamadığı "kişisel hesap" kullanım senaryoları için tasarlanmıştır.
Adlandırma
Kanal kimliği, bunun kişisel bir Zalo kullanıcı hesabını otomatikleştirdiğini (gayriresmî olarak) 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.
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 yapılandırma sırasında girilen adlar, pluginin süreç 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 etkin olduğunda çözümlenir. Bu açık onay olmadan, çalışma zamanındaki gönderen denetimleri yalnızca kimlik kullanır ve ham adlar yetkilendirme sırasında yok sayılır.
Şunlar aracılığıyla 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 başlangıçta yalnızcachannels.zalouser.dangerouslyAllowNameMatching: trueetkin olduğunda kimliklere çözümlenir.channels.zalouser.groupAllowFrom, izin verilen gruplarda 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 kimlik kullanır.
channels.zalouser.dangerouslyAllowNameMatching: trueetkin olmadığı sürece çözümlenmemiş adlar kimlik doğrulama sırasında yok sayılır. channels.zalouser.dangerouslyAllowNameMatching: true, değiştirilebilir başlangıç adı çözümlemesini ve çalışma zamanındaki 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 boş bırakılması, o grubu tüm gönderenlere açar. Yetkili denetim komutları (örneğin/new) istisnadır;groupAllowFromboş olduğunda komut göndereni denetimleriallowFromdeğ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. - Bahsetme gerektiği için bir grup mesajı atlandığında OpenClaw, bunu 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ından yedek değer olarak50.
Örnek:
{ channels: { zalouser: { groupPolicy: "allowlist", groups: { "*": { enabled: true, requireMention: true }, "Work Chat": { enabled: true, requireMention: false }, }, }, },}Çoklu hesap
Hesaplar, OpenClaw durumundaki zalouser profilleriyle eşleştirilir. Ö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 yapılandırmalarında, tek bir ortam değişkeninin birden fazla hesabın aynı oturum açma oturumunu paylaşmasına neden olmaması için yapılandırmada her hesap için profile ayarlamayı tercih edin.
Yazma durumu, tepkiler ve teslim alındıları
- OpenClaw, bir yanıtı göndermeden önce yazma olayı gönderir (mümkün olan en iyi şekilde).
- Kanal eylemlerinde
zalouseriçinreactmesaj tepki eylemi desteklenir.- Bir mesajdan belirli bir tepki emojisini kaldırmak için
remove: truekullanın. - Tepki davranışı: Tepkiler
- 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 (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ı bilinçli olarak kullanmanız gerekiyorsachannels.zalouser.dangerouslyAllowNameMatching: trueseçeneğini etkinleştirin.
Eski bir harici zca/CLI tabanlı yapılandırmadan yükseltme yaptınız:
- Harici
zcasürecine ilişkin tüm varsayımları kaldırın; kanal artık harici CLI ikili dosyası olmadan tamamen süreç içindezca-jsaracılığıyla çalışır.
İlgili konular
- 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 sağlamlaştırma