Enviar respostas rápidas
curl --request POST \
--url https://cloud.datafyapi.com.br/ig/me/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"id": "1000000000000001"
},
"message": {
"text": "Escolha uma opção",
"quick_replies": [
{
"content_type": "text",
"title": "Planos",
"payload": "PLANOS"
},
{
"content_type": "text",
"title": "Suporte",
"payload": "SUPORTE"
}
]
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient: {id: '1000000000000001'},
message: {
text: 'Escolha uma opção',
quick_replies: [
{content_type: 'text', title: 'Planos', payload: 'PLANOS'},
{content_type: 'text', title: 'Suporte', payload: 'SUPORTE'}
]
}
})
};
fetch('https://cloud.datafyapi.com.br/ig/me/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://cloud.datafyapi.com.br/ig/me/messages"
payload = {
"recipient": { "id": "1000000000000001" },
"message": {
"text": "Escolha uma opção",
"quick_replies": [
{
"content_type": "text",
"title": "Planos",
"payload": "PLANOS"
},
{
"content_type": "text",
"title": "Suporte",
"payload": "SUPORTE"
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"recipient_id": "1000000000000001",
"message_id": "aWdfZAG1faXRlbTo......"
}{
"error": {
"message": "Não foi possível encontrar o usuário solicitado.",
"type": "IGApiException",
"code": 100,
"error_subcode": 2534014,
"fbtrace_id": "AbCdEfGhIjK"
}
}{
"statusCode": 401,
"message": "Token inválido ou não encontrado."
}{
"statusCode": 402,
"message": "Assinatura inativa (status: canceled). Ative sua assinatura no painel para voltar a usar a API."
}Mensagens
Enviar respostas rápidas
Ofereça opções em balões acima do campo de texto.
POST
/
ig
/
me
/
messages
Enviar respostas rápidas
curl --request POST \
--url https://cloud.datafyapi.com.br/ig/me/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"id": "1000000000000001"
},
"message": {
"text": "Escolha uma opção",
"quick_replies": [
{
"content_type": "text",
"title": "Planos",
"payload": "PLANOS"
},
{
"content_type": "text",
"title": "Suporte",
"payload": "SUPORTE"
}
]
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipient: {id: '1000000000000001'},
message: {
text: 'Escolha uma opção',
quick_replies: [
{content_type: 'text', title: 'Planos', payload: 'PLANOS'},
{content_type: 'text', title: 'Suporte', payload: 'SUPORTE'}
]
}
})
};
fetch('https://cloud.datafyapi.com.br/ig/me/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://cloud.datafyapi.com.br/ig/me/messages"
payload = {
"recipient": { "id": "1000000000000001" },
"message": {
"text": "Escolha uma opção",
"quick_replies": [
{
"content_type": "text",
"title": "Planos",
"payload": "PLANOS"
},
{
"content_type": "text",
"title": "Suporte",
"payload": "SUPORTE"
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"recipient_id": "1000000000000001",
"message_id": "aWdfZAG1faXRlbTo......"
}{
"error": {
"message": "Não foi possível encontrar o usuário solicitado.",
"type": "IGApiException",
"code": 100,
"error_subcode": 2534014,
"fbtrace_id": "AbCdEfGhIjK"
}
}{
"statusCode": 401,
"message": "Token inválido ou não encontrado."
}{
"statusCode": 402,
"message": "Assinatura inativa (status: canceled). Ative sua assinatura no painel para voltar a usar a API."
}As respostas rápidas aparecem como balões acima do campo de texto e somem depois do clique. São indicadas para perguntas de uma etapa, como escolher um assunto no início do atendimento.
Até 13 opções por mensagem. Acima disso a Meta recusa com
O
Para opções que continuam visíveis na conversa, use botões.
param message[quick_replies] has too many elements.
Retorno no webhook
O clique chega como uma mensagem comum, com o valor escolhido dentro:"message": {
"mid": "aWdfZAG1faXRlbTo...",
"text": "Planos",
"quick_reply": { "payload": "PLANOS" }
}
text é o título do botão, e o payload é o que você definiu.
Decida o caminho do fluxo pelo
payload, nunca pelo text. O título é visível e pode ser digitado manualmente pela pessoa; o payload não.Autorizações
Token do canal do Instagram, gerado no painel da Datafy. Formato: sk_live_xxx.
Corpo
application/json
Resposta
Aceito pela Meta. Não confirma a entrega.