Montei uma API para enviar avisos e/ou cobranças via WhatsApp atraves do MkAuth, não testei e não sei se funcionaria corretamnete se instalado diretamente no mkauth pois como utilizo o mkauth virtualizado em proxmox e como o sistema é bem leve optei com criar um CT com umbuntu 23.04 a parte no proxmox, acredito que rode até em um pendrive.
O conteudo é auto explicativo e a API é gratuita e cumpre com a funcionalidade que promete sendo 100% funcional, tem gente cobrando mensalidade de 100 reais ou instalação de 300 reais mas aqui vcs conseguem de graça, como a finalidade é somente o envio de cobranças e não um chat-bot caso algum cliente responda alguma mensagem sera notificado que o numero é apenas para uso do sistema portanto sujiro utilizar uma conta de whatsapp a parte ou ate mesmo aqueles numeros virtuais.
Download e Instalação
Para adicionar comentários, você deve ser membro de MK-AUTH.
Respostas
Instalou direto no Mkauth? aqui parei nessa opção:
6 - Instale as dependencias do Mwsn
7 - Inicialize o Mwsn
atualiza pra 2.0.21 que vai resolver o problema do envio das mensagens, ja na questão da conexão com API vc pode testar com as dicas desse link api_token [Sistema MK-AUTH]
Ok, vou testar.
Obrigado kleber por responder.
Feito a atualização.
As mensagens, voltaram a ser encaminhadas, no teste usando a opção Run, tanto as mensagens teste normal quanto pelo "Mkauth Simulator" foram normal.
Vamos para a API:
A Api não autêntica, feito teste usando o domínio e pela VPN Cloudflare zero, retorna esse erro: "Connect to MkAuth was Failed".
Seguindo a sua orientação, "api_token [Sistema MK-AUTH]" , gerei um teste no CLI da máquina VM que esta rodando o Mwsm e temos o retorno:
O sistema consegue gerar o "JWT " porem na hora de gerar a solicitação para os planos usando o endereço domínio do Mkauth da erro de SSL e usando a VPN da Cloudflare zero aparece várias informações truncadas porem os dados dos planos não aparece.
Fiz um teste usando a aplicação Postman, ela autentica e traz as informações dos planos conforme "api_token [Sistema MK-AUTH]".
O que voce acredita que pode ser esse problema?
Segue evidencia.
não sei qual tuas regras de dns ou se teu equipamente esta todo na mesma rede mas aqui como tenho uma regra em ( mikrotik > ip > dns ) que direciona acesso local direto para ip do mkauth eu tive que instalar o certificado SSL localmente tbm
NO LINUX DO MKAUTH
apt-get install python3-certbot-dns-cloudflare
touch /etc/letsencrypt/cloudflare_credentials.ini
chmod go-rwx /etc/letsencrypt/cloudflare_credentials.ini
ABRE O ARQUIVO CRIADO
nano /etc/letsencrypt/cloudflare_credentials.ini
ESCREVE OS DADOS E SALVA
# Cloudflare API token used by Certbot
dns_cloudflare_api_token = TOKEN CLOUDFLARE
dns_cloudflare_email = EMAIL CLOUDFLARE
dns_cloudflare_api_key = KEY CLOUDFLARE
OBS: geralmente se utiliza somente api token ou email seguido da key
GERA O CERTIFICADO ( Troca DOMINIO.COM e EMAIL.COM por seu dominio e email)
sudo certbot certonly -d DOMINIO.COM --post-hook "service apache2 restart" --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare_credentials.ini --dns-cloudflare-propagation-seconds 30 --preferred-challenges dns-01 --non-interactive --agree-tos --email EMAIL.COM
vai em /etc/apache2/sites-enabled e edita o arquivo 000-default.conf (<VirtualHost *:443> e <VirtualHost *:445>)
e troca SSLCertificateFile /etc/apache2/apache.pem por
SSLCertificateFile /etc/letsencrypt/live/DOMINIO/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/DOMINIO/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/DOMINIO/chain.pem
salva e reinicia o apache com o comando service apache2 restart
pra renovar vc cria um agendamento ( cron ) com o comando
certbot renew
ou fica rodando manualmente o comando de 3 em 3 meses
Mas eu ja tenho certificaso SSL gerado pela letsencrypt no mkauth conforme consulta via google chome, segue evidencia.
O problema e que na hora de gerar as solicitações da API informa que não possui certificado SSL
Mas vou refazer o ssl conforme sua recomenação para ver ser resolve.
Retorno com um feedback.
outra forma de testar é editando o arquivo mwsm.js
nano /var/api/Mwsm/mwsm.js
navega até a função que verifica a autenticação ( // Link Mkauth )
logo acima de if (Authentication) {
vc coloca
console.log(Authentication);
logo acima de if ((MkSync.error == undefined)) {
vc coloca
console.log(MkSync);
ai vc volta no webadmin do app e clica em mkauth link novamente q vai retornar no console do linux tanto o token da API quanto o resultado da requisição de teste, se der erro na geração do token é problema ou no certificado ou o acesso ta sendo dropado por regra de firewall, aquele erro q vc postou inicialmente foi na primeira requisição q é correspondente a geração do token da api
Kleber, ufa, consegui.
O José Santos passou uma tecnica que foi batata.
Depois posto aqui no sentido de contrubuir para os colegas qeu estão com o mesmo rpblema, o procedimento que deu certo.
Agora acredito estou nivelado com os colegas que copnseguiram, sistema autenticado para api.
Porem na hora de envio da mensagem "
depois que atualizei meu mk-auth para versao 24.02 nao envia mais as mensagem
eles atualizaram isso
Versão 24.02
- Atualização do token EfiPay para formato JWT.
Detalhes https://view.comunicacao.sejaefi.com.br
ai fica aparecendo essa mensagem de erro
Prezados, bom dia!
Estou usando o MK-AUTH 24.02 :: TUX 4.19
Estou com o mesmo erro do colega acima.
Quando eu coloco os dados corretos para teste:
{"uid":"fulano.fulanin","find":"100"} recebo a mensagem: MkAuth Returned Invalid Request
Quando o dado não existe:
{"uid":"fulano.fulanin","find":"1"} recebo a mensagem: MkAuth Refused the Connection
Como debugar isso?