Ir para o conteúdo

VIBER

Enviando

Para enviar uma mensagem Viber, você precisa executar o método POST /viber/messages, passando os parâmetros da mensagem no corpo, indicando os dados de autorização no cabeçalho.

Parâmetros de solicitação

Parâmetro Tipo de dados Descrição e valores permitidos
from string Nome do remetente usado ao enviar a mensagem
Apenas os nomes dos remetentes que estão disponíveis para uso pelo usuário
to string Número de telefone em formato internacional, de acordo com o padrão E.164
text
(optional)
string Texto da mensagem usando caracteres UTF-8.
O número padrão de caracteres não é maior que 1000.
Número máximo de caracteres é 2000.
Se o número padrão de caracteres em uma mensagem do Viber exceder 1000 caracteres, sua mensagem será dividida em segmentos e entregue sequencialmente com preservação do conteúdo semântico.
image
(optional)
string URL da imagem, formatos de imagem suportados:
- JPG
- JPEG
- PNG
action
(optional)
string URL, para o qual o usuário será traduzido ao clicar no botão
Qualquer URL válido, incluindo links diretos de sistemas operacionais móveis
caption
(optional)
string Texto do botão, não mais do que 30 UTF-8 símbolos
validity
(optional)
integer Vida útil da mensagem em segundos
Valor mínimo: 15
Valor máximo: 1209600, 14 dias
Padrão: 86400, 1 dia
priority
(optional)
priority Prioridade de envio de mensagem
De 0 a 3, onde:
- 0 — baixa prioridade
- 3 — mais alta
- 0 — padrão
scheduledTime
(optional)
string Hora UTC para enviar a mensagem
Formato: YYYY-MM-DD hh:mm:ss
callbackUrl
(optional)
string URL, para o qual o sistema enviará notificações sobre mudanças no status da mensagem
Qualquer URL válido com esquema http ou https
options
(optional)
array[object] Uma matriz com dados opcionais a serem passados no retorno de chamada.
Qualquer array do formulário {“key1”: “value1”,“key2”: “value2” }

Possíveis combinações de texto, botões e imagens

Apesar do fato de que os parâmetros text, action, caption и image descrição são opcionais, você deve especificar pelo menos um ou mais, de acordo com a seguinte lista de possíveis combinações:

  • text
  • image
  • text, action, caption
  • text, action, caption, image

Solicitar exemplo

```json tab="JSON" POST /messages Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ== Content-Type: application/json Accept: application/json { "messages":[ { "from": "MyCompany", "to": "79034567890", "text": "Code: 1234", "image": "https://cdn.mycompany.com/viber.png", "action": "https://mycompany.com/promo", "caption": "Activate!" } ]
}

```curl tab="cURL"
curl -X POST \
 -H 'Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
 -H 'Content-Type: application/json' \
 -d '{ 
    "messages": [
        {
            "from": "MyCompany",
            "to": "79034567890",
            "text": "Code: 1234",
            "image": "https://cdn.mycompany.com/viber.png",
            "action": "https://mycompany.com/promo",
            "caption": "Activate!"
        }
    ]   
}' https://api.devino.online/viber/messages

```python tab="Python" import requests

messages = { 'messages': [ { 'from': 'MyCompany', 'to': '79034567890', 'text': 'Code: 1234', 'image': 'https://cdn.mycompany.com/viber.png', 'action': 'https://mycompany.com/promo', 'caption': 'Activate!' } ] }

resp = requests.post( 'https://api.devino.online/viber/messages', json=messages ) print(resp.json())

### Resposta exemplo

```json tab="JSON"
{
    "result": [
        {
            "code": "OK",
            "messageId": "3482512350952730368"
        }
    ]
}

```json tab="Modelo"

{ "result": [ { "code": "string", "reasons": [ { "key": "string", "ref": "string" } ], "messageId": "string" } ] }

### Parâmetros de resposta

| Parâmetro | Tipo de dados | Descrição e valores permitidos |
|----------|------------|--------------------------------|
| **code** | string | Descrição e valores permitidos<br> 1. OK - Processado com sucesso<br> 2. REJECTED - Ocorreu um erro ao processar a solicitação |
| **reasons**<br> _(optional)_ | Array[String, String] | Matriz de erros que ocorreram durante o processamento da mensagem.<br>É indicado apenas se **code=REJECTED** |
| reasons.**key** | string | Erro de código |
| reasons.**ref** | string | Referência ao parâmetro em que ocorreu o erro |
| **messageId**<br> _(optional)_ | string | Identificador de mensagem <br>Indicado apenas se **code=OK** |



## Webhook

Quando o status da mensagem é criado, uma solicitação “campanha” será enviada para a URL especificada no parâmetro ao [enviar a mensagem](#enviando)
`callbackUrl`. A resposta é esperada `200 OK`. 

Se a solicitação for retornada `500 Internal Error`, as tentativas de entrega do status serão feitas 5 vezes com intervalo de um minuto.


### Solicitar exemplo

```json
{ 
    "messageId": "string",
    "status": "string",
    "ts": 0,
    "errorCode": 0,
    "ip": "string",
    "browser": "string",
    "os": "string",
    "userAgent": "string",
    "options": { }
}

Parâmetros de solicitação

Parâmetro Tipo de dados Status Descrição e valores permitidos
messageId long any Identificador único da mensagem na plataforma
ts int any Indica a hora de criação do status
status enum any Código de status de entrega de mensagem Viber
Para obter detalhes, consulte a seção Possíveis status
errorCode
(optional)
int rejected
undeliverable
O motivo pelo qual a mensagem não foi entregue ao assinante (status = undelivered)
- user_blocked – o assinante está bloqueado;
- not_viber_user – o assinante não é um usuário Viber;
- message_limit_exceeded - o limite de mensagens para este nome expirou;
ip
(optional)
string clicked
opened
Endereço IP do assinante
browser
(optional)
string clicked
opened
Navegador do assinante
os
(optional)
string clicked
opened
Sistema operacional do assinante
userAgent
(optional)
string any Dados do usuário que ele especificou para receber no retorno de chamada

Status possíveis

Parâmetro Descrição
scheduled Envio atrasado
enroute A mensagem está na fila para ser enviada
sent Foi enviado para a rede do fornecedor
delivered Mensagem entregue ao assinanteу
expired A mensagem expirou
seen A mensagem foi lida
clicked Havia um link da mensagem
undeliverable A mensagem não pode ser entregue, o motivo está no código de erro
rejected A mensagem foi rejeitada pelo fornecedor ou Devino
unknown Um erro desconhecido ocorreu
subscribed Assinante inscrito
unsubscribed Assinante cancelado

Webhook de entrada

Atenção

Para receber mensagens do Viber, você deve:

  • entre em contato com o gerente da empresa ou contate o suporte técnico,
  • diga a URL para a qual o sistema enviará as mensagens recebidas do Viber.

Exemplo

{
  "incomingMessageId": "3777714415805253122",
  "to": "MyCompany",
  "from": "79101111111",
  "text": "Mensagem de entrada",
  "ts": "1587721283000"
}

Parâmetros

Parâmetro Tipo de dados Descrição
incomingMessageId long Identificador de mensagem
to string Endereço do destinatário
from string Endereço do remetente
text string Mensagem de texto
ts long Timestamp com milissegundos de recebimento da mensagem