Ir para o conteúdo

VK.COM

Enviando

Para enviar uma mensagem VK:

  • transfira o modelo de envio de mensagens para o seu gerente ou suporte técnico (support@devinotele.com);
  • obter o ID do modelo (será substituído na solicitação no parâmetro templateId);
  • você precisa executar o método POST /vk/messages, passando os parâmetros da mensagem no corpo, indicando os dados de autorização no cabeçalho.

Atenção

No lado VK, existem restrições à remoção:
- não mais que 50 notificações por segundo para um serviço (para um grupo em VK);
- não mais do que 5 notificações por dia para um usuário de um serviço (um grupo em VK).

Parâmetros de solicitação

Parâmetro Tipo de dados Descrição e valores permitidos
to string Número de telefone em formato internacional.
Segundo a norma E.164
templateId string ID do modelo no Devino Online
templateData
(optional)
object Valores adicionais que são substituídos no modelo
routes array[string] Matriz de rotas VK em ordem de uso. Valores possíveis:
[VK]
[OK]
[OK,VK]
[VK,OK]
deliveryPolicy string Política de entrega.
Valores possíveis: ANY,MOBILE_DEVICE_REQUIRED.
Por padrão ANY.
SeMOBILE_DEVICE_REQUIRED for especificado, a entrega será feita apenas se o usuário tiver um aplicativo móvel e usar nos últimos 7 dias. Nesse caso, a entrega é feita em todos os dispositivos disponíveis, não apenas nos móveis.
validity
(optional)
integer Indicado apenas no caso de envio de mensagem em template. O valor mínimo é 15 (seg). O valor máximo (dia) é 86400 (seg).
pushToken
(optional)
string ID do dispositivo do usuário
callbackData
(optional)
string Os dados a serem especificados no retorno de chamada de status da mensagem
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

Solicitar exemplo

```json tab="JSON" POST https://api.devino.online/vk/messages Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ== Content-Type: application/json Accept: application/json

{ "messages": [ { "callbackData": { "clientId": 44444 }, "callbackUrl": "http://10.10.10.10:1000/callback", "deliveryPolicy": "ANY", "pushToken": "123", "routes": [ "VK" ], "templateData": { "attr1": "100.50", "attr2": "1288899" }, "templateId": 16, "to": 79100000000, "validity": 15 } ] }

```curl tab="cURL"
curl -X POST \
 -H 'Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
 -H 'Content-Type: application/json' \
 -d '{ 
    "messages": [
        { 
            "callbackData":
                {
                    "clientId": 44444
                },
            "callbackUrl": "http://10.10.10.10:1000/callback",
            "deliveryPolicy": "ANY",
            "pushToken": "123",
            "routes": [
                "VK"
            ],
            "templateData": {
                "attr1": "100.50",
                "attr2": "1288899"
            },
            "templateId": 16,
            "to": 79100000000,
            "validity": 15
        }
    ]
}' https://api.devino.online/vk/messages

```python tab="Python" import requests

messages = { "messages": [ { "callbackData": { "clientId": 44444 }, "callbackUrl": "http://10.10.10.10:1000/callback", "deliveryPolicy": "ANY", "pushToken": "123", "routes": [ "VK" ], "templateData": { "attr1": "100.50", "attr2": "1288899" }, "templateId": 16, "to": 79100000000, "validity": 15 } ] }

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

### Resposta exemplo

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

```json tab="Модель"

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

### Parâmetros de resposta

| Parâmetro | Tipo de dados | Descrição e valores permitidos |
|-----------|---------------|--------------------------------|
| **code** | string | Indica o resultado do processamento da mensagem<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> Especificado apenas quando **code=REJECTED** |
| reasons.**key** | string | Erro de código |
| reasons.**ref**<br> _(optional)_ | string | Uma referência ao parâmetro em que ocorreu o erro |
| **messageId**<br> _(optional)_ | string | Identificador da mensagem<br>Especificado apenas quando **code=OK** |
| **description**<br> _(optional)_ | string | Descrição do erro<br>Especificado apenas quando **code=REJECTED** |

## Webhook

Para receber os status das mensagens VK, ao enviar uma mensagem usando o método [**POST /vk/messages**](#enviando), especifique o parâmetro `callbackUrl`


### Solicitar exemplo

```json
[
    {
        "channel":"VK",
        "messageId":"3594444391611888888",
        "ts":1611111767111,
        "status":"DELIVERED",
        "errorCode":9,
        "callbackData":{
          "clientId":"45656"
        },
        "pushToken":"123"
    }
]

Parâmetros de solicitação

Parâmetro Tipo de dados Descrição e valores permitidos
channel string Canal de envio ("VK" será indicado)
messageId int ID da mensagem
ts int Indica quando o objeto status foi criado
status enum Código de status de entrega de mensagemVK
Para obter detalhes, consulte a seção Status possíveis
errorCode
(opcional)
int Código do motivo pelo qual a mensagem não foi entregue ao assinante (status = não entregue)
callbackData objeto Os dados que foram especificados em callbackData ao enviar a mensagem
pushToken string ID do dispositivo do usuário

Status possíveis

Status Descrição
sent Mensagem enviada ao assinante
delivered Mensagem entregue ao assinante
seen A mensagem foi lida por um assinante
expired Não foi entregue no prazo previsto
undeliverable A mensagem não pode ser entregue
rejected A mensagem foi rejeitada pelo operador ou Devino
unknown Ocorreu um erro desconhecido

Códigos de erro

Código Descrição
SENT Mensagem enviada
DELIVERED Entregue
READ Leia
NOT_ENOUGHT_DATA Dados insuficientes no pedido
INCORRECT_SIGNATURE Assinatura inválida
UNSUPPORTED_NUMBER Número não suportado (país ou operador)
INCORRECT_NUMBER phoneinfo detecta este número como inválido
NUMBER_IN_BLACK_LIST O número está na lista negra
NUMBER_TYPE_NOT_ALLOWED O número é virtual ou da categoria de spam
RATELIMIT Limite ultrapassado
FAILED Houve uma tentativa, a notificação não foi entregue
UNSUPPORTED ste tipo de entrega não é compatível com este número/serviço
VP_EXPIRED_AFTER_SEND O tempo de vida expirou antes de receber o status da mensagem VK
BLOCKED_BY_USER O usuário negou o recebimento de mensagens deste remetente
UNKNOWN Status desconhecido do fornecedor