Objetos personalizados
A Messages API possui o conceito de objeto personalizado. O objeto personalizado permite que você aproveite recursos avançados das plataformas de mensagens compatíveis, como o Facebook Messenger, o WhatsApp e o Viber.
O objeto personalizado utiliza uma parte do formato de solicitação da API da plataforma de mensagens subjacente e a envia diretamente para essa plataforma.
Tomando o WhatsApp como exemplo, para a seguinte chamada à Messages API:
{
"to": "447700900000",
"from": "447700900001",
"channel": "whatsapp",
"message_type": "custom",
"custom": {$CUSTOM_OBJECT}
}
A Vonage enviaria o seguinte para o WhatsApp:
{
"recipient_type": "individual",
"to": "$TO_NUMBER",
{$CUSTOM_OBJECT}
}
O JSON em CUSTOM_OBJECT Depende do formato da plataforma de mensagens para o tipo de solicitação que você deseja fazer.
Se a solicitação do WhatsApp fosse:
{
"recipient_type": "individual",
"to": "447700900000",
"type": "template",
"template": {
"namespace": "whatsapp:hsm:technology:nexmo",
"name": "parcel_location",
"language": {
"policy": "deterministic",
"code": "en"
},
"components": [
{
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "Facebook HQ",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Value 1"
},
{
"type": "text",
"text": "Value 2"
},
{
"type": "text",
"text": "Value 3"
}
]
}
]
}
}
O formato da solicitação da Messages API seria:
{
"to": "447700900000",
"from": "447700900001",
"channel": "whatsapp",
"message_type": "custom",
"custom": {
"type": "template",
"template": {
"namespace": "whatsapp:hsm:technology:nexmo",
"name": "parcel_location",
"language": {
"policy": "deterministic",
"code": "en"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "Facebook HQ",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Value 1"
},
{
"type": "text",
"text": "Value 2"
},
{
"type": "text",
"text": "Value 3"
}
]
}
]
}
}
}
O objeto personalizado, CUSTOM_OBJECT, conforme definido no formato original da solicitação, é:
"type": "template",
"template": {
"namespace": "whatsapp:hsm:technology:nexmo",
"name": "parcel_location",
"language": {
"policy": "deterministic",
"code": "en"
},
"components": [
{
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "Facebook HQ",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Value 1"
},
{
"type": "text",
"text": "Value 2"
}
]
}
]
}
Observe que ao utilizar objetos personalizados, o formato de propriedades como o código de idioma deve corresponder ao da plataforma de destino. Por exemplo, no formato de mensagem subjacente do WhatsApp, os códigos de idioma têm o formato en_GB, não en-GB.
Modelos de mensagens do Facebook Messenger
Você pode usar objetos personalizados para enviar modelos de mensagens no Facebook Messenger. Por exemplo:
{
"to": $FB_RECIPIENT_ID,
"from": $FB_SENDER_ID,
"channel": "messenger",
"message_type": "custom",
"custom": {$CUSTOM_OBJECT}
}
A mensagem da Messages API seria transformada em algo semelhante ao seguinte:
{
"recipient":{
"id":"<PSID>"
},
"message":{
$CUSTOM_OBJECT
}
}
Quando o objeto personalizado, $CUSTOM_OBJECT, pode ser qualquer coisa que esteja dentro do Objeto de mensagem do Messenger.