2017-04-13 2 views
3

lecture the documentation de Zopim (aka Zendesk Chat):

appels API doivent être insérés après le script de chat en direct et enveloppé dans les Zopim $ (function() {...})

J'ai donc le script Zopim dans head partie du HTML:

<script>/*<![CDATA[*/window.zEmbed||function(e,t){ ... }("https://...); 
/*]]>*/</script> 

Puis j'ajouté ceci à la fin du document HTML:

$zopim(function() { 
    $zopim.livechat.setName('Logged in name'); 
    $zopim.livechat.setEmail('[email protected]'); 
}); 

Et console dit:

Zopim $ ne définit pas

Je pense que je l'ai suivi the instructions correctement. Qu'est-ce que j'ai raté?

+0

Avez-vous résolu ce problème? J'ai le même problème exactement –

+0

Non, j'écrit un bidouille horrible avec un délai d'attente, je vais l'afficher comme une réponse –

Répondre

7

que j'ai trouvé une meilleure solution (après avoir soumis une demande d'appui)

zE(function() { 
     $zopim(function() { 
      $zopim.livechat.setName("{{\Auth::user()->name}}"); 
      $zopim.livechat.setEmail("{{\Auth::user()->email}}"); 
     }); 
    }); 

Je travaillais avec un code Zendesk chat dans Zendesk support qui est la raison pour laquelle je dois ajouter la fonction Ze pour le faire fonctionner à l'aide api.

+0

@ rap-2-h marque s'il vous plaît cette réponse comme une solution! – Aliance

+0

Cela dépend de la façon dont vous intégrez le javascript. Si vous utilisez le Zopim $ javascript cela ne fonctionnera pas, mais si vous utilisez le Widget Zendesk (zEmbed), alors vous avez encore un problème de zE (ou zEmbed) pas chargé avant que cela soit exécuté, de sorte que même dans cette instance, vous avez besoin d'une boucle d'attente. –

1

Suivez la boucle, en attendant Zopim $ et zopim.livechat $ à charger. Une fois chargés, ils s'arrêteront de tourner.

var waitForZopim = setInterval(function() { 
    if (window.$zopim === undefined || window.$zopim.livechat === undefined) { 
     return; 
    } 
    $zopim(function() { 
     $zopim.livechat.setName("{{\Auth::user()->name}}"); 
     $zopim.livechat.setEmail("{{\Auth::user()->email}}"); 
    }); 
    clearInterval(waitForZopim); 
}, 100);