2017-04-13 9 views
3

정의되지 않은 :

API 호출은 라이브 채팅 스크립트 뒤에 삽입 및 $ zopim 내에서 포장되어야합니다 (함수() {...})

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

가 그럼 난 HTML 문서의 끝 부분이 추가 :

그래서 나는 HTML의 head 부분에 상기 Zopim 스크립트가

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

그리고 콘솔 는 말한다 :

$ zopim

을 정의되지 않은 내가 제대로 the instructions을 따랐다 생각합니다. 내가 놓친 게 무엇입니까?

+0

해결 했습니까? 나는 똑같은 문제가 정확히 –

+0

입니다. 타임 아웃으로 추한 해킹을 썼습니다. 응답으로 게시 해 드리겠습니다. –

답변

7

나는 내가 그것을 사용하여 작업하기 위해 '제에게 기능을 추가해야하는 이유입니다

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

내가 젠 데스크 지원 내에서 젠 데스크 채팅 코드를 사용했다 (지원 요청을 제출 한 후) 더 나은 솔루션을 찾았습니다 api.

+0

@ rap-2-h 해결책으로이 답변을 표시해주세요! – Aliance

+0

이것은 자바 스크립트를 삽입하는 방법에 따라 다릅니다. $ zopim javascript를 사용하는 경우에는 작동하지 않지만 Zendesk 위젯 (zEmbed)을 사용하는 경우 zE (또는 zEmbed)가 실행되기 전에로드되지 않는 문제가 있으므로 이 인스턴스에서는 대기 루프가 필요합니다. –

1

$ zopim 및 $ zopim.livechat가로드 될 때까지 기다리면서 반복됩니다. 로드되면로드가 중단됩니다.

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);