Existem vários tipos de conteúdo bruto (não estruturado) que podem ser enviados aos seus usuários.
Texto
{
  type: "TEXT",
  text: "Olá Mundo!"
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | TEXT | S | 
| text | String; Limitado a 2.000 caracteres | S | 
Imagem
| Propriedade | Descrição | Obrigatório | 
|---|
| type | IMAGE | S | 
| url | URL do arquivo de imagem | S | 
| attachment_id | String; ID da imagem enviada | N | 
- A imagem deve ser um formato válido de arquivo, incluindo .jpg,.jpeg,.png,.gif,.tiffe.bmp
- O tamanho máximo do arquivo é 2MB
- Você pode enviar botões de Resposta rápida junto com uma imagem
 
Áudio
| Propriedade | Descrição | Obrigatório | 
|---|
| type | AUDIO | S | 
| url | URL do arquivo de áudio | S | 
| attachment_id | String; ID do áudio enviado | N | 
- O áudio deve ser um formato válido de arquivo de áudio, incluindo .aac,.flac,.m4a,.m4p,.mp3,.wave.wma
- Você pode enviar botões de Resposta rápida junto com uma mensagem de áudio
 
Vídeo
| Propriedade | Descrição | Obrigatório | 
|---|
| type | VIDEO | S | 
| url | URL do arquivo de vídeo | S | 
| attachment_id | String; ID do vídeo enviado | N | 
- O vídeo deve estar em um formato válido de arquivo de vídeo, incluindo .mkv,.gif,.avi,.wmv,.rmvb,.mp4,.m4v,.mpg,.mpege.3gp
- O tamanho máximo do arquivo é 25MB
- Você pode enviar botões de Resposta rápida junto com um vídeo
 
Arquivo
| Propriedade | Descrição | Obrigatório | 
|---|
| type | FILE | S | 
| url | URL do arquivo anexado | S | 
| attachment_id | String; ID do arquivo enviado | N | 
- O arquivo deve ser um formato válido, incluindo .pdf
- O tamanho máximo do arquivo é 25MB
- Você pode enviar botões de Resposta rápida junto com um arquivo
 
Carrossel
Carrossel é uma linha rolável horizontal de itens, cada um composto por um anexo de imagem, descrição curta e botões para solicitar ações dos usuários.
{
  type: "CAROUSEL",
  carousel: [{
    title: "Camiseta clássica",
    subtitle: "Cinza médio\n$29,99",
    image_url: "http://img.url",
    default_action: {
      type: "web_url",
      url: "https://zuckstees.com"
    },
    buttons: [{
      type: "web_url",
      url: "https://sanuker.com",
      title: "Ver detalhes"
    }, {
      type: "postback",
      title: "Comprar agora",
      payload: "UM_PAYLOAD_LONGO_AQUI"
    }, {
      type: "phone_number",
      title: "algum título 3",
      payload: "NÚMERO_DE_TELEFONE"
    }]
  }],
  image_aspect_ratio: "square"
}
Copiar
Objeto de resposta
| Propriedade | Descrição | Obrigatório | 
|---|
| type | CAROUSEL | S | 
| carousel | Array de itens do carrossel; Máximo de 10 elementos | S | 
| image_aspect_ratio | Configura "horizontal" (1.91:1) ou "square" (1:1); Padrão é "horizontal" | N | 
Objeto carousel
| Propriedade | Descrição | Obrigatório | 
|---|
| title | String; Limitado a 80 caracteres | S | 
| subtitle | String; Limitado a 80 caracteres | N | 
| image_url | URL da imagem exibida | N | 
| default_action | URL padrão do site quando o usuário clicar na imagem | N | 
| buttons | Array de botões; Máximo de 3 botões que aparecem como call-to-action | N | 
- Você pode enviar botões de Resposta rápida junto com um carrossel
- Você não precisa necessariamente incluir botões em um carrossel se nenhuma call-to-action for pretendida
 
Botões
{
  type: "BUTTON",
  text: "Como posso ajudar?",
  buttons: [{
    type: "web_url",
    url: "https://sanuker.com",
    title: "Ver status do pedido"
  }, {
    type: "phone_number",
    title: "Me ligue",
    payload: "NUMERO_DE_TELEFONE"
  }, {
    type: "postback",
    title: "algum título 2",
    payload: "UM_PAYLOAD_LONGO_AQUI"
  }]
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | BUTTON | S | 
| text | String; Limitado a 640 caracteres | S | 
| buttons | Array de botões; Máximo de 3 botões que aparecem como call-to-action | S | 
Botão URL
O botão URL pode ser usado para abrir uma página da web no navegador interno do aplicativo. Este botão pode ser usado com o Template de Botões, Carrossel e Lista. A visualização web pode ser renderizada de três formas diferentes: compacta, alta ou completa.
{
  type: "web_url",
  title: "algum título",
  url: "https://sanuker.com",
  webview_height_ratio: "tall",
  messenger_extensions: true,
  fallback_url: "https://sanuker.com",
  webview_share_button: "hide",
  urlTracking: false,
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | web_url | S | 
| title | String; Limitado a 20 caracteres | S | 
| url | URL do destino; Deve ser HTTPS se messenger_extensions for "true" | S | 
| webview_height_ratio | Altura da janela webview; Configura "compact", "tall" ou "full"; Padrão é "full" | N | 
| fallback_url | URL para usar em clientes que não suportam Messenger Extensions; Defina apenas se messenger_extensions for "true"; Padrão é url se não especificado | N | 
| webview_share_button | Configura "hide" ou não configurado | N | 
| urlTracking | Padrão é "true" | N | 
A Análise de URL pode ser ativada ao criar o Botão URL na resposta.
Quando um usuário clicar no botão URL, isso será rastreado e registrado no painel de análise.
Botão Postback
O Botão Postback ajuda a invocar uma ação no seu chatbot. Você pode definir um payload para o botão.
{
  type: "postback",
  title: "algum título",
  payload: "algum payload",
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | postback | S | 
| title | String; Limitado a 20 caracteres | S | 
| payload | Payload definido pelo usuário triggers; Limitado a 1.000 caracteres | S | 
Botão de chamada
O Botão de chamada pode ser usado para iniciar uma ligação telefônica diretamente.
{
  type: "phone_number",
  title: "Ligue para nós",
  payload: "+85281930208"
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | phone_number | S | 
| title | String; Limitado a 20 caracteres | S | 
| payload | O formato deve ter o prefixo "+" seguido pelo código do país, código de área e número local sem espaços | S | 
Botão de login
O Botão de login pode ser usado para vincular uma conta de usuário de terceiros ao Facebook Messenger.
| Propriedade | Descrição | Obrigatório | 
|---|
| type | account_link | S | 
| url | URL de destino; Deve ser HTTPS | S | 
Resposta rápida
A Resposta rápida oferece uma forma diferente de apresentar botões em uma mensagem. Contém texto e uma imagem opcional.
A única diferença entre Resposta rápida e Botão é que a Resposta rápida aparece apenas uma vez e desaparece após ser clicada, enquanto o Botão permanece na mensagem mesmo após o clique. Isso previne o cenário onde os usuários poderiam tocar em botões antigos de Resposta rápida anexados a mensagens anteriores na conversa.
Respostas rápidas do Facebook
{
  type: "QUICK_REPLIES",
  text: "algum texto",
  quickReplies: [{
    content_type: "text",
    title: "Vermelho",
    payload: "PAYLOAD_STRING",
    image_url: "http://red.img.url"
  }, {
    content_type: "text",
    title: "Verde",
    payload: "PAYLOAD_STRING",
    image_url: "http://green.img.url"
  }, {
    content_type: "text"
  }]
}
Copiar
Objeto de resposta
| Propriedade | Descrição | Obrigatório | 
|---|
| type | QUICK_REPLIES | S | 
| text | String; Limitado a 2.000 caracteres | S | 
| quickReplies | Array de botões de resposta rápida; Máximo de 13 botões | S | 
Objeto quickReplies
| Propriedade | Descrição | Obrigatório | 
|---|
| content_type | Defina "text","user_phone_number"ou"user_email" | S | 
| title | String; legenda do botão; Limitado a 20 caracteres | Somente se content_typefor"text" | 
| image_url | URL da imagem para resposta rápida de texto | N | 
| payload | Payload definido pelo usuário trigger; Limitado a 1.000 caracteres | Somente se content_typefor"text" | 
- A imagem para image_url deve ter pelo menos 24x24 e será cortada e redimensionada.
- Se o usuário não tiver número de telefone ou email no perfil, os botões de resposta rápida "user_phone_number"e"user_email"não serão exibidos.
 
Mídia
Mídia é similar a um carrossel sem título e legenda, mas também pode exibir vídeo.
{
  type: "MEDIA",
  media_type: "image",
  attachment_id: "attachmentId",
  buttons: [{
    type: "postback",
    title: "Mostre mais!",
    payload: "UM_PAYLOAD_LONGO_AQUI"
  }]
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | MEDIA | S | 
| media_type | Defina "image" ou "video" | S | 
| attachment_id | String; ID do seu arquivo de mídia enviado | S | 
| buttons | Array de botões; Máximo de 3 botões que aparecem como call-to-action | N | 
nota
- Você pode enviar botões de Resposta rápida junto com um template de mídia
 
Resposta pública
Resposta pública refere-se à resposta a comentários dos usuários em publicações do Facebook.
Resposta pública do Facebook
{
  type: "PUBLIC_REPLY",
  text: "algum texto",
  attachment_id: "attachmentId",
  attachment_url: "https://img.url"
}
Copiar
| Propriedade | Descrição | Obrigatório | 
|---|
| type | PUBLIC_REPLY | Deve ser definido texto, attachment_id ou attachment_url | 
| text | String; Limitado a 5.000 caracteres | Deve ser definido texto, attachment_id ou attachment_url | 
| attachment_id | String; ID do arquivo de mídia enviado | Deve ser definido texto, attachment_id ou attachment_url | 
| attachment_url | URL do arquivo de mídia que você deseja publicar | Deve ser definido texto, attachment_id ou attachment_url | 
Tipos de mensagem
A Meta suporta 3 tipos de mensagem para garantir que a mensagem enviada esteja em conformidade com as políticas de mensagens e as preferências do destinatário.
Consulte aqui para mais detalhes sobre os tipos de mensagem.
Resposta
{
  "type": "TEXT",
  "messagingMeta": {
    "messaging_type": "RESPONSE"
  },
  "text": "Texto de teste"
}
Copiar
Atualizações
{
  "type": "TEXT",
  "messagingMeta": {
    "messaging_type": "UPDATE"
  },
  "text": "Texto de teste"
}
Copiar
Etiqueta de mensagem
{
  "type": "TEXT",
  "messagingMeta": {
    "tag": "ACCOUNT_UPDATE",
    "messaging_type": "MESSAGE_TAG"
  },
  "text": "Texto de teste"
}
Copiar
| Propriedade | Descrição | 
|---|
| tag | Deve ser um destes: ACCOUNT_UPDATE,CONFIRMED_EVENT_UPDATE,CUSTOMER_FEEDBACKouHUMAN_AGENT |