Respondido

Como adicionar variáveis no ".withAccount"?


Consigo adicionar variáveis no “.blipClient.sendMessage”, elas trazem o valor correto.

Mas no “.withAccount” não consigo, pois traz apenas o valor null, conforme o print abaixo:


Gostaria de utilizar no “fullName”, mas não consegui, tentando no “extras” também não deu certo.


Como posso adicionar as variáveis corretamente nesse método?


(function () {
window.onload = function () {
var blipClient = new BlipChat();
blipClient
.withAppKey('dGVzdGVibGlwdmljdG9yOmEwMWEwYWQ0LWJkNTQtNGM4Yy05NzJmLWJlYjdlM2IyMTAxNQ')
.withEventHandler(BlipChat.LOAD_EVENT, function () {
blipClient.sendMessage({
"type": "text/plain",
"content": "Nome: "+resource_name+""
});
})
.withAccount({
fullName: 'John Doe',
email:'[email protected]',
city: 'Decatur',
phoneNumber: '+15055034455',
extras:{
resource_name: ''+resource_name+''
}
})
.withTarget("chat")
.build();
}
})();
icon

Melhor resposta por Rafael_Figueiredo 4 November 2022, 21:50

Veja o original

17 comentários

Reputação 7
Crachá +3

Olá @Victor_Pacheco_de_So tudo bem? no caso não funcionou, pois você instanciou o valor do withaccount como null no resource_name repare que no inicio da função você não preenche esse valor, para que funcionacesse na função você passaria esse valor vindo de um outro local para o script.


Exemplo:


function (name){
......

Obrigado pela resposta!


O Correto seria eu adicionar a “function (resource_name){ …” em qual linha?


Testei adicionando em local diferentes como “.withAccount(resource_name)” na linha 12, também testei adicionando na linha 1 “(function (resource_name)”, e também na linha 2 “window.onload = function (resource_name)”. Mas nenhum deu certo.


Consegue me explicar porque o “blipClient.sendMessage” funciona apenas inserindo o “+resource_name+”, mas o “.withAccount” não funciona dessa forma?

Reputação 7
Crachá +3

@Victor_Pacheco_de_So seria na linha 1, mas agora tem que ficar atento, pois para que funcione a variável tem que existir no site antes da tela carregar o que o que varia você ter que declarar a variável com let antes da linha 1 para ter o nome .

A variável já existe no site antes da tela carregar, já que atrvés do “blipClient.sendMessage”, conseguimos enviar por mensagem no chat. Ela está sendo declarada com let em outro script JS executado anteriormente.

image


Porém, adicionando na primeira linha “(function (resource_name) {”, o “.withAccount(” não funciona, e o “blipClient.sendMessage” passa a enviar o valor como “undefined”.




image

Reputação 7
Crachá +3

@Victor_Pacheco_de_So ai na linha 2 tem que passar o paramento novamente.

@Rafael_Figueiredo mesmo adicionando os parâmetros nas linhas 1 e 2 não funciona, o BlipChat passa a receber os valores do "blipClient.sendMessage"como “[Object Event]” e os valores do “.withAccount” como “undefined”.




Reputação 7
Crachá +3

@Victor_Pacheco_de_So fiz um teste com esse script e funcionou :


    (function () {
window.onload = function () {

blipClient = new BlipChat()
.withAppKey('')
.withEventHandler(BlipChat.LOAD_EVENT, function () {
let name='rafael';
blipClient.sendMessage({
"type": "text/plain",
"content": name
});
})
.withButton({"color":"#2CC3D5","icon":""})
.withCustomCommonUrl('https://chat.blip.ai/')
window.setTimeout(function() { blipClient.toogleChat() }, 500);


blipClient.build();




}
})();


@Rafael_Figueiredo para o “blipClient.sendMessage” eu consegui, mas para o “withAccount” não, você poderia testar inserindo as variáveis no withAccount:

image

Reputação 7
Crachá +3

Olá @Victor_Pacheco_de_So identifiquei o que é, para o uso do withacctoun tem que usar o withauth



(function () {
window.onload = function () {
let name = 'rafael v';
var builder = new BlipChat()
.withAppKey('')
.withButton({"color":"#2CC3D5","icon":""})
.withAuth({
authType: BlipChat.DEV_AUTH,
userIdentity: '123456',
userPassword: 'MTIzNDU',
})

.withAccount({
fullName: name,
email:'[email protected]',
phoneNumber: '+1055034455',
city: 'Decatur',
})

builder.build()
}
})();


a

@Rafael_Figueiredo Consegui utilizar dessa mesma forma que você, informando o valor na variável “resource_name_estatico” de forma estática dentro do “.onload” e chamando essa variável estática dentro do “.withAuth” e “.withAccount”.


Porém eu preciso utilizar a variável “resource_name”, que já está definida em no “plugin.js”, que está sendo importada no head do código.


Essa variável “resource_name” retorna valor no “.sendMessage”, mas não funciona para o “.withAuth” e “.withAccount”.


1 - Você sabe se há alguma diferença nesses 3 métodos?

2 - Porque funciona para o .sendMessage e para o “.withAuth” e “.withAccount” não?

3 - É possível utilizar uma variável contida no “plugin.js” importado no head, nos métodos “.withAuth” e “.withAccount”?


Reputação 7
Crachá +3

@Victor_Pacheco_de_So

1 linha 49 sistema de login interno para restauração da conversa com o contato e inserção de dados de forma direta.

linha 53 criação de conta que só funciona caso tenha o withauth

linha 64 envia o nome do contato na mensagem ai você manda esse dado para o fluxo do bot onde posse ser capturado lá.


2 o motivo de funcionar para um e outros não é o tempo de execução, pois em alguns pontos a variável não fica acessível ou instanciada depois na ordem de execração do widget.


3 sim, mas lembre que ela tem que ser a primeira coisa a carregar na pagina pois caso contrario não ira vir o valor correto.

Obrigado pela resposta, @Rafael_Figueiredo!


Segundo no número 1, na linha 64, onde utilizamos o método .sendMessage:


Capturando esse dado para o fluxo do bot, consigo incluir nas informações do .withAuth e .withAccount por dentro do blipChat?


Exemplo:


Passo 1 - O usuário abriu o chat e enviou a mensagem com as informações partir do .sendMessage

Passo 2 - BlipChat captura esse valor

Passo 3 - BlipChat inclui esse valor nas informações de conta (userIdentity, userPassword, FullName…)

Reputação 7
Crachá +3

@Victor_Pacheco_de_So Sim.

@Rafael_Figueiredo como posso fazer isso?

Consegui a partir da documentação, obrigado!

@Rafael_Figueiredo na verdade consegui apenas adicionar os valores de .withAccount

mas preciso adicionar também os valores para .withAuth, para que o BlipChat possa diferenciar os usuários


como posso fazer isso?

Reputação 7
Crachá +3

@Victor_Pacheco_de_So sobre inserir no withauth não será possível atualizar, pois a instancia é o site e ele fica estático, ai para isso recomendo fazer uma função para criar id generico e salvar no cache do navegador para permanecer os dados de cada usuario de acordo com o navegador : BLiP Chat Widget — Tips and Tricks | by André Borba Netto Assis | Medium item A dessa doc.

Comente