Closed ghsgabriel closed 3 years ago
@edgardmessias
Description
Estou tentando implementar o MD no server, mas quando usamos o Multi-Device (BETA), o tokenStore file da lib não salva, visto que tem uma validação (isValidSessionToken)
Seria legal usarmos o tokenStore file mesmo no MD, para funcionar o startAllSessions/getAllTokens no server, e coisas como Webhook e Chatwoot (que da para personalizar para cada session mas fica salvo no token).
Ao forçar retornar true na função isValidSessionToken, o token é salvo, e em meus testes preliminares parece que tando o legacy quanto o md conectam e enviam/recebem texto normalmente, mesmo não validando os parâmetros do token.
Na minha cabeça passou 2 hipoteses: Removar essa validação ou, se tiver uma forma de checar se é MD, da pra fazer um if (temTodosOsAtributos || isMD) return true
Não enviei um PR, pois não sei qual a melhor forma de tratar.
Obrigado!
Environment
- Wppconnect version(s): 1.8.13
- Browser: [e.g. Chrome 87, Chromium 85]
- OS: Windows 10
- Node version: Node 14
- WhatsApp version: 2.2126.14
- MultiDevice (BETA): YES
Steps to Reproduce
- Crie uma nova sessão
- Escaneie o QR com o WhatsApp no MD (BETA)
- Verá que o token não foi salvo
Log Output
warn: [local:token] Failed to update session token
if want to enable multi-device add this puppeteerOptions: {userDataDir: './tokens/chat2/', // for multidevice beta },
if want to enable multi-device add this puppeteerOptions: {userDataDir: './tokens/chat2/', // for multidevice beta },
I'm not asking how to enable multi-device.
I'm reporting a bug about saving tokens when using multi-device.
I know it is not necessary token for general use, but for a good functioning of the wppconnect-server it is, for the reasons already presented.
A Solução mais rapida para startAll é fazer um fs na pasta tokens e pegar o nome delas montar um map e start a função open!
pelo menos foi a mais rapida que encontrei e funcional.
Realmente isso resolve o startAll @wenioferraz , porem não resolve ainda as outras questões como custom webook url e chatwoot.
Ontem o @edgardmessias adicionou a função isMultiDevice(), com base nela, vou tentar enviar entre hoje e amanhã um PR que resolveria todas essas questões de uma vez só.
Parece que não tem como chamar a função isMultiDevice dentro do isValidSessionToken, a forma que eu havia pensado não vai funcionar. Além disso, o token é checado antes de iniciar a sessão, justamente para injetar, ou seja, não tem como saber se é MultiDevice ou não.
Amanhã vou testar e pensar em outras abordagens, como preencher um dummy data nos campos requeridos.
Description
Estou tentando implementar o MD no server, mas quando usamos o Multi-Device (BETA), o tokenStore file da lib não salva, visto que tem uma validação (isValidSessionToken)
Seria legal usarmos o tokenStore file mesmo no MD, para funcionar o startAllSessions/getAllTokens no server, e coisas como Webhook e Chatwoot (que da para personalizar para cada session mas fica salvo no token).
Ao forçar retornar true na função isValidSessionToken, o token é salvo, e em meus testes preliminares parece que tando o legacy quanto o md conectam e enviam/recebem texto normalmente, mesmo não validando os parâmetros do token.
Na minha cabeça passou 2 hipoteses: Removar essa validação ou, se tiver uma forma de checar se é MD, da pra fazer um if (temTodosOsAtributos || isMD) return true
Não enviei um PR, pois não sei qual a melhor forma de tratar.
Obrigado!
Environment
Steps to Reproduce
Log Output
warn: [local:token] Failed to update session token