Telegram - Problema na identificação do contato contact.source
Bom dia pessoal,
Estou com um caso inusitado, Solicitei para uma pessoa instalar o Telegram e testar um chatbot .
No inicio do fluxo eu identifico se é telegram ou não.
Percebi que nesse caso as variaveis estão vindo em branco.
contact.source
contact.identity
Mas detalhe que já tenho vários usuarios de telegram que funcionam normalmente.
Outra coisa que achei estranho, é que quando entro no builder no menu contatos, essas pessoas (que geram variaveis em branco) não aparecem, é como se elas não tivessem usado o chat.
Fiz um teste há pouco em um projeto que tenho ativado no Telegram e tive os seguintes resultados:
Neste primeiro momento, vou orientar a refazer o processo de ativação do chatbot no canal Telegram, a partir deste tutorial “Como publicar seu bot no canal Telegram”
Após refazer o processo e retestar, caso permaneça o problema, a segunda iniciativa será abrir um chamado no Suporte Técnico em Take Blip, para investigar especificamente sua aplicação para definir a solução.
Na resposta seguinte, vou compartilhar também alguns pontos que podem ser úteis para te ajudarmos a solucionar.
Em geral, costumo utilizar um scrip para definir / identificar o canal de origem do usuário.
👉 Basicamente, o que esse script faz é identificar o domínio do canal (FQDN) e, a partir dele, definir o nome do canal. A variável de entrada é tunnel.originator (se não me engano, pode usar também contact.identity) e a variável de saída é canal.
Ah, e por que isso assim? Eu defino os nomes dos canais, conforme estamos acostumados. Por exemplo, a contact.source para o canal Blip Chat retorna 0mn.io. Com este script, vou ter uma variável canal = Blip Chat
👉 Fiz um teste há pouco, com um bot ativo no Telegram, e verifiquei que as informações de contatos foram salvas e gerou um contato na parte de Contatos (no meu caso, no bot Router). Dessa forma, se:
seu projeto usa Router + Principal (e, talvez, Subbots) e o que está ativo no Telegram é o “Router”, recomendo verificar no módulo de Contatos do Router se o contato foi gerado e, se tiver salvando alguma informação no contato (usando a ação “Definir contato”), se estes dados estão aparecendo corretamente. Ainda, se a função “Usar contexto do roteador” estiver HABILITADO (o que recomendo quando se desenvolve com essa usando Router), a sua base de contatos estará no Router. Caso contrário, estará no Builder onde os dados de contatos são salvos.
seu projeto é um Builder, apenas, então o contato (e os dados salvos) devem estar no módulo de Contatos deste mesmo bot Builder.
**Script** para Identificação do Canal (usando tunnel.originator / contact.identity)
/* i ! ] Attention¹: This script identifies each channel (eg Blip Chat, WhatsApp, Messenger, Telegram, etc.)
the user / client is talking to his Smart Contact (Chatbot).
/* ! ] Attention²: To configure this script, the following steps are required:
(0) activate the "Use Router Context" functionality,
(1) add an "Execute script" action,
(2) add the "tunnel.originator" or "contact.identity system variable as a input,
(3) add the code in "Script" and
(4) save the processing / return in the "channel" variable (or equivalent) */
/* ! ] API Reference: https://docs.blip.ai/#channels */
Fiz um teste aqui com novo usuário e acompanhando os logs através da extensão Beholder e, de fato, ocorreu o que relatou aqui no fórum. Estou procurando qual pode ser a causa e, identificando, compartilho com você.
Do outro lado, vou pedir para seguir com abertura de uma demanda no Suporte. Assim, o time verifica tanto a nível de Plataforma, quanto do canal Telegram o que pode estar causando isso:
Retomando este post e sobre o problema das variáveis {{contact.source}} e {{contact.identity}}.
Obtive retorno de que o problema com a variável {{contact.identity}} está solucionando, com as informações do ID + domínio do canal de origem do usuário sendo exibido, mesmo para novos contatos.
Se seu projeto estiver usando Router + Subbots, você pode utilizar a variável {{tunnel.originator}}, pois ela será equivalente a {{contat.identity}}
Quanto à variável {{contact.source}}, no teste realizado, ele retornou valor “em branco”. Assim sinalizei essa situação que ainda está pendente.
Como solução de contorno, caso precise identificar e salva o canal de origem do usuário para utilização no fluxo / projeto, pode-se utilizar o script compartilhando mais acima, que determina o canal de acordo com o domínio do canal (valor que vem logo após o @ do identificador do usuário)
👉 Reproduzindo o cenário, de um novo usuário no Telegram, obtivemos os seguintes resultados:
Na base de contatos (no meu caso, no Roteador), consta o identificador do usuário
A thread da conversa bot <-> usuário é exibida e vinculada ao usuário do exemplo da interação
No Telegram, no próprio fluxo, inclui as variáveis {{contact.identity}} e {{tunnel.originator}}, de forma a ver o valor dela na primeira interação deste novo usuário
💬 Para “debuggar” as interações e comportamentos, recomendo utilizar uma extensão denominada Beholder que nos ajuda ver o valor das variáveis de contexto, de contato, além de logs que são gerados e os estados que o usuário está passando.
Bom dia Romulo tudo bem ?
Estou testando aqui, uma coisa que acho estranho é que quando clico lá em contatos a conversa nem aparece, quando é com um contato do telegram novo.
Sobre a ferramenta de Beholder, ela nao aparece aqui pra mim.
Boa tarde Romulo, o canal já consigo pegar tranquilo, o problema é pegar o ID, você tem alguma previsão da solução desse problema?
Bom dia pessoal,
A Plataforma continua com esse problema, alguma previsão para a solução ?
Como identificado pelo nosso time responsável, o Telegram não está retornando dados de novos usuários cadastrados. Por esse motivo, foi encaminhado uma solicitação de suporte para saber o porque eles não estão retornando essas informações. Neste presente momento, ainda não tivemos retorno sobre a nossa solicitação, assim que tivermos novas atualizações, retornaremos contato mais breve possível.
Por ora, seguimos sem uma solução definitiva e/ou de contorno para este caso junto ao canal Telegram.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
A analisar o ficheiro em busca de vírus
Lamentamos, mas ainda estamos a analisar o conteúdo deste ficheiro, a fim de nos certificarmos de que o mesmo é seguro para descarregar. Agradecemos que tentes de novo dentro de poucos minutos.