ARCY AI
BETA

Sorun giderme

Sık karşılaşılan arcy.js kurulum sorunlarının çözümleri.

arcy.js uygulamanıza hiçbir zaman hata fırlatmaz. Karşılaştığı her sorun, ister hatalı bir çağrı, ister engellenmiş bir betik, ister kaydedilmeyen bir özellik olsun, bir istisna değil [arcy] ön ekli bir console.warn mesajına dönüşür. Her şeyden önce tarayıcı konsolunuzda bu mesajlardan birini arayın: sorunu neredeyse her zaman adıyla söyler.

Widget hiç görünmüyor

Önce konsolda [arcy] Failed to load. ARCY is disabled. mesajına bakın. Bu, betiğin hiç yüklenmediği anlamına gelir, en sık şu nedenlerle:

  • Bir reklam engelleyici veya katı bir İçerik Güvenlik Politikası (CSP) isteği engelledi. Bir CSP kullanıyorsanız script-src ve connect-src direktiflerinizi kontrol edin.
  • Betik yüklenmeden sayfa başka bir yere gitti.

Bu mesajı görmüyorsanız arcy.js yüklenmiş ama sayfaya yerleşememiştir. Şuna bakın:

[arcy] The page has no <body> to mount into yet. The widget will not render.

Bu, init() çağrısının <body> daha ortada yokken çalıştığı anlamına gelir. Genellikle sebebi, defer veya async olmadan <head> içine konmuş bir betiktir. Betik etiketini kapanış </body> etiketinden önceye taşıyın ya da arcy.init(...) çağrısını yalnızca DOM hazır olduktan sonra çalışan bir koddan yapın.

[arcy] This ARCY surface is already on this page. Ignoring the second mount.
[arcy] Another copy of ARCY is already on this page. Ignoring this one.

Bu, kod parçacığının iki kez kurulduğu anlamına gelir. En sık nedeni, aynı sayfada hem NPM hem HTML yolunun bulunması ya da HTML kod parçacığının iki ayrı yere yapıştırılmasıdır (örneğin bir düzen şablonu ve bir etiket yöneticisi). Tek bir kurulum yolu seçin ve diğerini kaldırın.

Verify installation "No traffic yet" diyor

arcy.init() çağrısı token'ınızın ortamına hiç ulaşmadı. Olasılık sırasına göre:

  1. arcy.init() çağıran sayfa tarayıcıda hiç açılmadı, yalnızca kod tabanınıza eklendi. Verify installation ekranı açıkken gerçek sayfayı açıp yenileyin.
  2. init() içindeki token, kontrol ettiğiniz ortamla eşleşmiyor. Token'ı o ortamın Settings > Installation sayfasından yeniden kopyalayın. Her ortamın kendi token'ı vardır.
  3. Bir ağ hatası çağrıyı sessizce yutuyor. Tarayıcınızın ağ sekmesinde init() çağrısının yaptığı isteği bulun ve ne döndürdüğüne bakın.

Verify installation "Wrong environment token" diyor

Trafik geliyor, ancak başka bir ortama ait bir token taşıyor. Bu neredeyse her zaman yanlış ortamın Installation sayfasından kopyalanmış bir kod parçacığıdır, örneğin Staging kod parçacığının Production yayınına yapıştırılması. Panel kenar çubuğundaki ortam değiştiriciyle gerçekten istediğiniz ortamı açın, kod parçacığını Settings > Installation ekranından kopyalayın ve yeniden kurun.

Verify installation "Origin not verified" diyor

Token doğru, ama istek bu uygulama için doğrulanmamış bir alan adından geldi. Verify installation reddedilen Origin'i tam olarak adıyla gösterir. Bu size ait bir alan adıysa onu ekleyip doğrulayın (uygulama başına bir kez kontrol edilen bir DNS TXT kaydı), sonra Agent > Origins altında ortama atayın. localhost için buna hiç gerek yoktur: her yerde güvenilir sayılır, böylece yerel geliştirme hiçbir kurulum olmadan çalışır.

Verify installation "Identity verification failed" diyor

Oturumlar geliyor, ancak userHash olarak geçirdiğiniz imza, bu ortam için kayıtlı Secret ile doğrulanmıyor. Kurulum çalışıyor; etkilenen her oturum tanımlı yerine anonim olarak sunuluyor, bu yüzden bu sorun sürerken o kullanıcılarda özellikler ve kişiselleştirme sessizce çalışmayı bırakıyor.

İmzalama kodunuzu Kimlik doğrulamayı zorunlu kılma bölümüyle karşılaştırın. Tarif şu: identify() işlevine geçirdiğiniz tam metnin, ortamın Secret değeriyle üretilmiş ve onaltılık kodlanmış HMAC-SHA256 özeti. En sık görülen neden bir tür uyuşmazlığıdır: kullanıcı kimlikleriniz tam sayıysa ve arcy.identify(String(user.id)) çağırıyorsanız, ham sayıyı değil String(user.id) değerini imzalamanız gerekir. 42 üzerinden atılan bir imza, "42" tanımlayan bir çağrıyı doğrulamaz.

Secret değerini yeni döndürdüyseniz öncekiyle üretilen imzalar 24 saat daha doğrulanır; yani döndürmenin üzerinden 24 saat geçmediyse eski bir yayın bu hataya yol açmaz.

Özel bir özellik hiçbir yerde görünmüyor

Önce Verify installation ekranındaki unknown attributes bölümüne bakın: tanımlanmadan gelen bir özellik anahtarı kaydedilmez, orada adıyla listelenir ve hiçbir zaman sessizce saklanmaz. Kaydedilmeyen bir özellik konsolda ayrıca şunu yazar:

[arcy] identify() dropped "some_key": an attribute must be a string, number,
boolean, null, or an array of strings.

Aynı belirtiyi iki farklı neden üretir:

  • Anahtar hiç tanımlanmamış. Agent > Attributes altında ekleyin, sonra tekrar göndermeye başlayın. Tanımsızken gelmiş olan trafik geriye dönük doldurulmaz.
  • Değer, arcy.js'in gönderebileceği bir biçimde değil (iç içe bir nesne, bir işlev, bir Date). identify() işlevine geçirmeden önce değeri bir metne, sayıya, mantıksal değere, null değerine veya metin dizisine indirgeyin.

identify() veya updateUser() hiçbir şey yapmıyor gibi

Konsolda şunlara bakın:

[arcy] identify() needs a user id. Ignoring the call.
[arcy] identify() was called before init(). Ignoring.

İlki, kullanıcı kimliği argümanının boş, undefined ya da metin olmadığı anlamına gelir. İkincisi, identify() çağrısının arcy.init() tamamlanmadan çalıştığını söyler; çoğunlukla kimlik durumunuzun yüklenmesiyle betik etiketinin çalışması arasındaki bir yarış yüzünden. identify() çağrısını oturum verilerinizin hazır olduğu yerden yapın ve init() o sayfada daha önce en az bir kez çağrılmış olsun.

Herhangi bir identify() veya identifyAnonymous() çağrısından önce çalışan updateUser() tasarım gereği hiçbir şey yapmaz: güncellenecek bir profil henüz yoktur, dolayısıyla hiçbir şey gönderilmez.

Sırada ne var

Bu sayfada