Olá,
como customizo o LiveChat para comportar essa funcionalidade?
Condicional para quando solicita (ou não) o formulário de registro inicial.
Gostaria que em uma url publica (index) solicitasse o formulário de pré-registro, já em uma url interna não solicitasse (usuario autenticado).
Mesmo aplicando a função de registerGuest do widget LiveChat API a configuração do Admin → Omnichannel → LiveChat → Formulario de Pre-Registro dita o resultado. Se está habilitado solicita em todos casos, desabilitado nunca solicita.
- Version of Rocket.Chat Server: 4.8.1
Oi!
O Livechat possui uma série de APIs onde você pode definir o token, nome, email, departamento além de campos customizados, para permitir essa pré identificação:
Olá Duda,
não identifiquei qual função permite isso, me parece que as configurações internas do RocketChat sobrescrevem qualquer comando na instalação do widget.
Testei com o registerGuest e as outras que constam na documentação, permanece unilateral: quando defino “solicitar pré-formulario” nas configurações em Administração → …
como Habilitado, ele solicita em todos cenários (com ou sem comandos do Livechat API).
como Desabilitado, ele nunca solicita.
qual seria o comando do Livechat API para fazer essa condicional em relaçao ao pré-formulario de registro?
Você poderia compartilhar o código usado? Daí tento replicar daqui.
Eu já fiz esse mesmo cenário que você deseja, e à época, eu consegui.
segue
<!-- Start of Rocket.Chat Livechat Script -->
<script type="text/javascript">
<<< script de instalação do LiveChat >>>
RocketChat(function() {
this.registerGuest({
name: 'xxx',
email: 'xxx',
});
});
</script>
Aqui deu certo:
<!-- Start of Rocket.Chat Livechat Script -->
<script type="text/javascript">
(function (w, d, s, u) {
w.RocketChat = function (c) { w.RocketChat._.push(c) }; w.RocketChat._ = []; w.RocketChat.url = u;
var h = d.getElementsByTagName(s)[0], j = d.createElement(s);
j.async = true; j.src = 'http://localhost:3000/livechat/rocketchat-livechat.min.js?_=201903270000';
h.parentNode.insertBefore(j, h);
})(window, document, 'script', 'http://localhost:3000/livechat');
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
// RocketChat(function() {
// this.setCustomField('timezone', tz);
// });
RocketChat(function() {
this.registerGuest({
token: 'novo-token', // The token field is not required. If it is not passed, a new token will be generated
name: 'novo-token',
email: 'novo-token@rocket.chat',
});
});
</script>
Acredito que seja porque você não definiu o token. O token é o que definitivamente vai identificar o seu usuário como visitante junto ao Rocket.Chat, e pode ser usado novamente no futuro para agrupar as conversas.
Atente-se que não é interessante colocar algo como usuario-123 como token, pois qualquer pessoa poderia se passar por usuário ID 123. precisa ser algum outro token que o seu sistema irá gerar e que não seja sequencial.
com a função RegisterGuest passando apenas token, name + email você conseguiu abrir o LiveChat sem o pré-formulário (mesmo estando habilitado dentro da aplicação)?
usei o mesmo código que o seu passando um unique-id para o token, interno e exclusivo para cada usuário e ainda assim ele continua exigindo os campos de nome e e-mail
exemplo de um unique-id de usuario demo. testei tambem com valores arbitrarios como 7364763 e o resultado é sempre o mesmo
1566295411300x326794292963055160
Hum.
Lembre-se de sempre dar um ctrl+shit+r pra limpar o cache e recarregar o widget, ou preferencialmente testar numa janela anônima.
Qualquer coisa me pinga em nosso servidor que dou uma olhada contigo:
1 Like