Pular para o conteúdo principal

Canal de Retorno da Turn.io

atenção

Esta API será descontinuada em algum momento no futuro. Se você planeja começar a usá-la, por favor, consulte API de Canais

O canal de retorno permite enviar mensagens não-WhatsApp usando a Turn.io. Ele é ativado especificando uma URL de retorno na interface do usuário.

Os contatos serão padronizados para o canal de retorno quando a quantidade de falhas no WhatsApp atingir o limite de erro configurado na interface do usuário. Uma mensagem bem-sucedida recebida no WhatsApp pelo contato mudará o padrão de volta para WhatsApp.

Exemplo de payload

{
"preview_url": false,
"recipient_type": "individual",
"to": "16315551003",
"type": "text",
"text": {
"body": "text message content"
}
}

Substituir mensagem de saída

Você pode especificar um header para forçar que uma mensagem seja enviada pelo canal de retorno. Isso enviará o payload da mensagem ao canal de retorno, independentemente do canal padrão do contato.

$ curl -X POST "https://whatsapp.turn.io/v1/messages" \
-H "Authorization: Bearer token" \
-H "Content-Type: application/json" \
-H "x-turn-fallback-channel: 1"
-d '
{
"preview_url": false | true,
"to": "whatsapp-id",
"type": "text",
"text": {
"body": "your-text-message-content"
}
}'

Eventos

Os eventos do canal de retorno podem ser enviados para https://whatsapp.turn.io/api/whatsapp/channel-uuid no formato especificado aqui: https://developers.facebook.com/docs/whatsapp/api/webhooks/outbound

nota

Se você deseja identificar eventos de webhook do canal de retorno, pode especificar o header x-turn-fallback-channel ao enviar os eventos. Este header será encaminhado para os webhooks.

Atualizando o indicador manualmente

Você pode chamar a API de contatos para atualizar manualmente o indicador "is_fallback_channel_active".

Veja mais informações na API de Contatos.

Segurança

Veja abaixo um exemplo de como calcular a assinatura usando a linguagem de programação Python.

>>> import hmac
>>> import base64
>>> from hashlib import sha256
>>> h = hmac.new("secret", '{"foo":"bar"}', sha256)
>>> base64.b64encode(h.digest())
'PzqzmGtlarsXrz6xRD7WwI74//n+qDkVkJ0bQhrsib4='

A assinatura é enviada como um header HTTP para os endpoints do canal de retorno que você configurou.

X-Turn-Hook-Signature: PzqzmGtlarsXrz6xRD7WwI74//n+qDkVkJ0bQhrsib4=

O segredo HMAC deve ser usado para calcular uma assinatura para o payload da mensagem. Usando esta assinatura, você pode verificar se a mensagem foi realmente recebida da Turn.io.

nota

Atualmente, apenas SHA256 é suportado como digest HMAC.

A assinatura é enviada como um header HTTP no webhook postado nos endpoints que você configurou.