アプリが非常に少ないページリフレッシュを持っている場合(つまり、クライアント側でコンテンツが入れ替わるがページリフレッシュは発生しない)、そして多くの非同期JSがある場合、顧客のデータを最新に保ち、すべてのアウトバウンドコンテンツ(メッセージ、ツアーなど)を受け取るために、若干異なる方法でIntercomを統合する必要があります。
以下は私たちの提案です:
まず、HTML head要素にIntercom JSライブラリファイルを含めます。
(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + APP_ID;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();
重要: 上記のコードスニペットをコピーする場合は、ワークスペースID(コードではAPP_IDと呼ばれます)を手動で変更してください。
次に、サイトにログインしているユーザーがいる場合(認証後、詳細情報が利用可能になった後)、window.Intercom('boot', {user_data})
を呼び出します。user_data
はそのユーザーに関するすべてのデータです。ユーザーの更新を行う際には必ずuser_idおよび/またはemailを送信してください。これにより、ログインしたユーザーの詳細がIntercomに送られ、表示されるべき新しいメッセージが確認されます。
ログアウトした訪問者の例としては次のようになります:
window.Intercom('boot', {
app_id: 'abc12345',
custom_launcher_selector: '#my_custom_link'
});
重要: 上記のコードスニペットをコピーする場合は、ワークスペース