Перейти к содержанию

SendContact#

Test Postman Apidog

Метод предназначен для отправки сообщения с контактом.

Сообщение будет добавлено в очередь на отправку. Сообщение на отправку хранится 24 часа в очереди и будет отправлено сразу же после авторизации телефона. Скорость отправки сообщений из очереди регулирует параметр Интервал отправки сообщений.

Для метода используются ограничения на частоту запросов в секунду.

Запрос#

Для отправки сообщения с контактом требуется выполнить запрос по адресу:

POST
{{apiUrl}}/waInstance{{idInstance}}/sendContact/{{apiTokenInstance}}

Префикс v3 стал необязательным параметром запроса

Для вашего удобства унифицировали формат запросов методов API для всех мессенджеров.
Подробнее о правилах вызова методов читайте в статье Выполнение запросов.

Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.

Параметры запроса#

Параметр Тип Обязательный Описание
chatId string Да Идентификатор чата
contact object Да Объект контакта
quotedMessageId string Нет Идентификатор цитируемого сообщения. При заполнении параметра сообщение отправится с цитированием указанного сообщения чата.
Цитирование сообщения возможно только из того же чата, в который производится отправка.
Для отправки сообщений из другого чата используется метод ForwardMessages
typingTime integer Нет Время показа уведомления набора сообщения в чате собеседника.
Время ограничено значениями от 1000 до 20000 миллисекунд (от 1 до 20 секунд).

Параметры объекта contact:

Параметр Тип Обязательный Описание
chatId string Да Идентификатор чата

Примечание

Для корректной отправки контакта через API мессенджера MAX необходимо наличие контакта в базе контактов инстаса. Получить их можно с помощью метода GetContats.

Цитирование сообщений

Для корректной работы с механизмом цитирования сообщений система должна знать о сообщении, которое будет процитировано. Убедится о том что сообщение доступно к цитированию можно запросив метод журналирования getMessage, если сообщение отсутствует в системе, то цитировать такое сообщение невозможно.

  • Для цитирования входящих сообщений необходимо включить настройку Получать уведомления о входящих сообщениях и файлах.

  • Для цитирования исходящих сообщений отправленных с телефона, включите настройку Получать уведомления о сообщениях, отправленных с телефона.
    Так сообщения будут попадать в систему и их можно будет цитировать.

Установку настроек можно сделать методом SetSettings или через личный кабинет.

Пример тела запроса#

Отправка сообщения в личный чат:

{
    "chatId": "10000000",
    "contact": {
        "chatId": "10000000"
    }
}

Отправка сообщения в групповой чат:

{
    "chatId": "-10000000000000",
    "contact": {
        "chatId": "10000000"
    }
}

Отправка сообщения с цитированием:

{
    "chatId": "10000000",
    "quotedMessageId": "1763115112345",
    "contact": {
        "chatId": "10000000",
    }
}

Ответ#

Поля ответа#

Поле Тип Описание
idMessage string Идентификатор отправленного сообщения

Пример тела ответа#

{
    "idMessage": "1762333029830"
}

Ошибки SendContact#

Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки

Код HTTP Идентификатор ошибки Описание
400 Bad Request
Validation failed
Ошибка валидации
400 "Contact 20000001 not found" Контакт не найден
500 Internal Server Error
request entity too large
Превышение допустимой длины json (>100кб)

Примеры кода#

import requests

url = "{{apiUrl}}/waInstance{{idInstance}}/sendContact/{{apiTokenInstance}}"

payload = {
    "chatId": "10000000",  
    "contact": {
        "chatId": "10000000"
    }
}

headers = {
    'Content-Type': 'application/json'
}

response = requests.post(url, json=payload, headers=headers)

print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/sendContact/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "10000000",
    "contact": {
        "chatId": "10000000"
    }
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/sendContact/")
    .append({{apiTokenInstance}});

var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

var jsonBody = "{\r\n\t\"chatId\": \"10000000\",\r\n\t\"contact\": {\r\n\t\t\"chatId\": 10000000,\r\n" };

var requestEntity = new HttpEntity<>(jsonBody, headers);

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/sendContact/")
    .append({{apiTokenInstance}});

var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body("{\r\n\t\"chatId\": \"10000000\",\r\n\t\"contact\": {\r\n\t\t\"chatId\": 10000000,\r\n")
    .asString();

System.out.println(response);