Erro mensagem ativa por API para contatos que nunca interagiram

Eu construí uma API para enviar mensagens ativas. Segui a recomendação de fazer uma requisição buscando o user identity (isso cria o contato no roteador), e fazer a requisição de envio da mensagem após isso, pegando o alternativeAccount da resposta.

A key utilizada é do roteador e funciona perfeitamente para mensagens não ativas (<24h após a última interação do contato) e para mensagens ativas (após 24h) apenas quando eu já interagi com o bot alguma vez . O roteador tem crédito suficiente para envio de mensagens ativas.

Tentei enviar uma mensagem ativa para um número que nunca havia interagido com o bot, e ao fazer a requisição Get logged notifications para verificar os eventos da mensagem, eu identifiquei o seguinte erro:

{
    "event": "failed",
            "reason": {
                "code": 81,
                "description": "WhatsApp API response status code does not indicate success: 404 (NotFound). Error: Resource not found: unknown contact (1006)"
            }
}

Antes de enviá-la, eu obviamente fiz a requisição de get identity e verifiquei que o contato foi criado no roteador. A mensagem ativa apareceu no histórico de mensagens do roteador, na aba “Contatos”, porém sem recebimento da mensagem e com esse erro supracitado.

image

Se o contato manda um “oi”, a mensagem consegue ser enviada (tanto <24h não ativa, quanto >24h).

Em um teste posterior, enviando uma mensagem ativa para um número que nunca havia entrado em contato, pelo WhatsApp Broadcast deu certo. Em uma outra tentativa, pelo mesmo plugin, dada a mesma situação, não deu certo, resultando num erro diferente:

"Message failed to send because there are restrictions on how many messages can be sent from this phone number. This may be because too many previous messages were blocked or flagged as spam.:  (471)"

Ou seja, aparentemente o WhatsApp Broadcast consegue encontrar o número. Qual a diferença do que o WhatsApp Broadcast faz pro que eu implementei (como descrito na documentação da Blip)?

Alguma ideia do porquê isso possa estar acontecendo?

Obrigado.

1 Curtida

Oi @Felipe_C_L_Machado, tudo bem?

Você está fazendo o get Contact Identity toda vez antes de enviar a mensagem ou só faz na primeira vez?

Estou fazendo todas as vezes.

Mas acho que encontrei o problema, era bem simples na verdade:
Na requisição de Get Contact Identity eu passava o número sem o caractere “+” na frente.

O ruim foi que mesmo passando só números, a plataforma deu a entender que estava funcionando direito: o contato foi criado no roteador e o template da mensagem apareceu no histórico da conversa. Além de que funciona sem o “+” quando o contato já trocou mensagens.

Talvez seja bom retornar o erro na requisição da mensagem ativa, já que volta sempre “status 202” (imagino que seja algo assíncrono, volta “202” mas na verdade envia logo depois).

2 Curtidas

Faz sentido!

Que bom que deu tudo certo @Felipe_C_L_Machado e obrigado pelo retorno! :slight_smile:

2 Curtidas