"This authorization code has expired" após o registo na Coexistence
Quando o Embedded Signup da Meta termina, entrega à plataforma que o iniciou um código de curta duração, que tem de ser trocado por um token de acesso em 30 segundos. Se a troca ocorrer mais tarde, ou usar um código de uma tentativa anterior, a Meta responde que o código de autorização expirou. Executar o fluxo de novo gera um código novo.
O tempo de vida que a Meta atribui ao código de token trocável devolvido pelo Embedded Signup.
A Meta indica que a troca do token deve ser um pedido entre servidores, nunca feito no lado do cliente.
Tempo de que a plataforma dispõe, após a integração, para sincronizar o histórico de um número Coexistence antes de ser necessário repetir o fluxo.
Que código expirou?
Quando a empresa conclui o Embedded Signup, a Meta devolve os IDs dos ativos e um código de token trocável à janela do navegador que abriu o pop-up. A plataforma envia depois esse código para o seu próprio servidor, que chama o endpoint oauth access_token da Meta com o ID da app e o segredo da app para o trocar por um token empresarial.
O guia de implementação da Meta é explícito quanto ao tempo: o código de token trocável tem um tempo de vida de 30 segundos, pelo que a plataforma tem de conseguir trocá-lo antes de expirar. Uma troca tentada depois desse momento é recusada, e "This authorization code has expired" é a forma como essa recusa aparece. A empresa não fez nada de errado por terminar o pop-up devagar; o relógio começa a contar quando o código é devolvido.
Porque é que acontece quando o pop-up termina tarde ou duas vezes?
Várias situações podem atrasar a troca para além desse limite.
O separador do navegador ficou em segundo plano ou o portátil entrou em suspensão quando o fluxo terminou, e por isso o código chegou ao servidor da plataforma muito depois de ter sido emitido. O servidor da plataforma colocou a troca em fila, atrás de outro trabalho, em vez de a fazer de imediato. Ou a pessoa abriu o fluxo duas vezes, concluiu ambos, e a plataforma trocou o código da primeira janela depois de a segunda terminar.
Em testes existe uma quarta: copiar o código da consola do navegador e trocá-lo à mão com cURL ou Postman. O guia da Meta avisa precisamente contra isto e recomenda ter o pedido de troca preparado antes de começar.
Como se conclui a ligação?
Execute o fluxo de novo desde o início, numa única janela, e deixe-o terminar com a página da plataforma em primeiro plano. Cada conclusão devolve um código novo, e uma troca rápida desse código é tudo o que a plataforma precisa.
No caso de um número Coexistence, convém fazê-lo sem demora. A Meta converte a conta WhatsApp Business quando a empresa conclui o fluxo, e, depois de a plataforma integrar o cliente, tem 24 horas para sincronizar o histórico de mensagens; passado esse prazo, a empresa tem de ser desligada e concluir o fluxo outra vez.
Do lado da plataforma, a correção duradoura é trocar o código no servidor no instante em que chega, antes de qualquer outro passo de integração.
Erros comuns
- Voltar a tentar a troca do token com o mesmo código. Expirou ao fim de 30 segundos e não regressa.
- Executar o registo em duas janelas ao mesmo tempo. Só conta o código da tentativa que está a ser trocada.
- Trocar o código a partir do navegador. A Meta exige a troca como pedido entre servidores, com o segredo da app.
A EasyCoexistence troca o código no seu servidor assim que o Embedded Signup o devolve e regista cada tentativa na cronologia da ligação, pelo que um código perdido aparece como um evento datado e não como uma falha vaga.
Perguntas frequentes
A empresa ligou o número ou não?
A empresa concluiu o fluxo da Meta, mas a plataforma não conseguiu transformar o código num token funcional, pelo que ainda não pode atuar sobre o número. Executar o fluxo de novo dá-lhe um código novo.
É possível fazer o código durar mais tempo?
Não. A Meta define o tempo de vida de 30 segundos e nenhuma plataforma o pode prolongar.
A app WhatsApp Business é afetada?
Não. A app continua a funcionar no telemóvel enquanto o problema é resolvido.
Isto é o mesmo que um token de acesso expirado?
Não. Este é o código de registo de curta duração. Um token de acesso expirado numa ligação em funcionamento devolve o erro 190.
Continue a ler
Pronto para começar?
Configure a Coexistência do WhatsApp em minutos, não em meses. A aplicação continua a funcionar no telemóvel.
Começar período experimental gratuitoVerificado em