SendContact#
Метод предназначен для отправки сообщения с контактом. Формируется визитная карточка контакта и отправляется в чат. Сообщение будет добавлено в очередь на отправку. Сообщение на отправку хранится 24 часа в очереди и будет отправлено сразу же после авторизации телефона. Скорость отправки сообщений из очереди регулирует параметр Интервал отправки сообщений.
Запрос#
Для отправки сообщения с контактом требуется выполнить запрос по адресу:
{{apiUrl}}/waInstance{{idInstance}}/sendContact/{{apiTokenInstance}}
Для получения параметров запроса apiUrl
, idInstance
и apiTokenInstance
обратитесь к разделу Перед началом работы.
Параметры запроса#
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
chatId | string | Да | Идентификатор чата |
contact | object | Да | Объект о контакте |
quotedMessageId | string | Нет | Идентификатор цитируемого сообщения. При заполнении параметра сообщение отправится с цитированием указанного сообщения чата. Цитирование сообщения возможно только из того же чата, в который производится отправка. Для отправки сообщений из другого чата используется метод ForwardMessages |
Цитирование сообщений
Чтобы процитировать входящие сообщения, включите настройку Получать уведомления о входящих сообщениях и файлах
.
Чтобы процитировать исходящие сообщения, включите настройки Получать уведомления о сообщениях, отправленных с телефона
и Получать уведомления о сообщениях, отправленных с API
методом SetSettings или через личный кабинет.
Параметры объекта contact
:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
phoneContact | integer | Да | номер телефона контакта в международном формате (без +) 11 или 12 цифр |
firstName | string | Если не указаны middleName , lastName , company | Имя контакта |
middleName | string | Если не указаны firstName , lastName , company | Отчество контакта |
lastName | string | Если не указаны middleName , firstName , company | Фамилия контакта |
company | string | Если не указаны middleName , lastName , firstName | Название компании контакта |
Пример тела запроса#
Отправка сообщения в личный чат:
{
"chatId": "11001234567@c.us",
"contact": {
"phoneContact": 79001234568,
"firstName": "Артем",
"middleName": "Петрович",
"lastName": "Евпаторийский",
"company": "Велосипед"
}
}
Отправка сообщения в групповой чат:
{
"chatId": "120363043968066561@g.us",
"contact": {
"phoneContact": 79001234568,
"firstName": "Артем",
"middleName": "Петрович",
"lastName": "Евпаторийский",
"company": "Велосипед"
}
}
Отправка сообщения с цитированием:
{
"chatId": "11001234567@c.us",
"quotedMessageId": "361B0E63F2FDF95903B6A9C9A102F34B",
"contact": {
"phoneContact": 79001234568,
"firstName": "Артем",
"middleName": "Петрович",
"lastName": "Евпаторийский",
"company": "Велосипед"
}
}
Ответ#
Поля ответа#
Поле | Тип | Описание |
---|---|---|
idMessage | string | Идентификатор отправленного сообщения |
Пример тела ответа#
{
"idMessage": "3EB0C767D097B7C7C030"
}
Ошибки SendContact#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
Код HTTP | Идентификатор ошибки | Описание |
---|---|---|
400 | Bad Request Validation failed | Ошибка валидации |
400 | Validation failed. Details: 'value' must have at least 1 key | Поле value должно содержать минимум 1 символ |
400 | Validation failed. Details: 'contact.phoneContact' must be a number | Неверный тип данных поля contact.phoneContact |
400 | Validation failed. Details: 'contact.phoneContact' must be a safe number | Значение поля contact.phoneContact превышает максимальное безопасное целочисленное значение |
500 | Internal Server Error request entity too large | Превышение допустимой длины json (>100кб) |
Отправка с неверным идентификатором цитируемого сообщения
В случае некорректного указания quotedMessageId
, система вернёт код 200 и id отправляемого сообщения, но оно не будет доставлено получателю.
Примеры кода#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/sendContact/{{apiTokenInstance}}"
payload = {
"chatId": "11001234567@c.us",
"contact": {
"phoneContact": "79001234568",
"firstName": "Артём",
"middleName": "Петрович",
"lastName": "Евпаторийский",
"company": "Велосипед"
}
}
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": "123456780910@c.us",
"contact": {
"phoneContact": 111111111111,
"firstName": "Артем",
"middleName": "Петрович",
"lastName": "Евпаторийский",
"company": "Велосипед"
}
}'
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\": \"11001234567@c.us\",\r\n\t\"contact\": {\r\n\t\t\"phoneContact\": 79001234568,\r\n \t\"firstName\": \"Артем\",\r\n\t\t\"middleName\": \"Петрович\",\r\n\t\t\"lastName\": \"Евпаторийский\",\r\n\t\t\"company\": \"Велосипед\"\r\n\t}\r\n}\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\": \"11001234567@c.us\",\r\n\t\"contact\": {\r\n\t\t\"phoneContact\": 79001234568,\r\n \t\"firstName\": \"Артем\",\r\n\t\t\"middleName\": \"Петрович\",\r\n\t\t\"lastName\": \"Евпаторийский\",\r\n\t\t\"company\": \"Велосипед\"\r\n\t}\r\n}\r\n")
.asString();
System.out.println(response);
Sub SendContact()
Dim url As String
Dim RequestBody As String
Dim http As Object
Dim response As String
' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
url = "{{apiUrl}}/waInstance{{idInstance}}/sendContact/{{apiTokenInstance}}"
' chatId - chat identifier, phoneContact - contact phone number in international format (without +) 11 or 12 digits, firstName - contact name, middleName - contact's middle name, lastName - contact's last name, company - contact's company name
RequestBody = "{""chatId"":""71234567890@c.us"",""contact"":{""phoneContact"":70123456789,""firstName"":""Артем"",""middleName"":""Петрович"",""lastName"":""Евпаторский"",""company"":""Велосипед""}}"
Set http = CreateObject("MSXML2.XMLHTTP")
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.send RequestBody
End With
response = http.responseText
Debug.Print response
' Outputting the answer to the desired cell
Range("A1").Value = response
Set http = Nothing
End Sub