SendPoll#
Метод предназначен для отправки сообщения с опросом в личный или групповой чат. Сообщение будет добавлено в очередь на отправку. Сообщение на отправку хранится 24 часа в очереди и будет отправлено сразу же после авторизации телефона. Скорость отправки сообщений из очереди регулирует параметр интервал отправки сообщений.
Для получения уведомлений с входящими ответами на отправленные опросы необходимо включить настройки инстанса одним из представленных вариантов:
- Через личный кабинет включить настройки
Получать уведомления о входящих сообщениях и файлах
иПолучать уведомления об опросах
- Через метод SetSettings включить настройки
incomingWebhook
иpollMessageWebhook
Запрос#
Для отправки требуется выполнить запрос по адресу:
{{apiUrl}}/waInstance{{idInstance}}/sendPoll/{{apiTokenInstance}}
Для получения параметров запроса apiUrl
, idInstance
и apiTokenInstance
обратитесь к разделу Перед началом работы.
Параметры запроса#
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
chatId | string | Да | Идентификатор чата |
message | string | Да | Текст сообщения. Поддерживаются символы emoji 😃. Максимальная длина текстового сообщения составляет 255 символов. |
options | array | Да | Массив данных о вариантах выбора. Количество вариантов ответов в голосовании не может быть больше 12. Варианты ответа должны отличаться друг от друга минимум одним символом. |
multipleAnswers | boolean | Нет | Разрешить несколько ответов. true — включено, false — отключено, По умолчанию: false |
quotedMessageId | string | Нет | Идентификатор цитируемого сообщения. При заполнении параметра сообщение отправится с цитированием указанного сообщения чата. Цитирование сообщения возможно только из того же чата, в который производится отправка. Для отправки сообщений из другого чата используется метод ForwardMessages |
Поля массива options
Параметр | Тип | Описание |
---|---|---|
optionName | string | Текст варианта выбора. Максимальная длина текста составляет 100 символов. |
Пример тела запроса#
Количество вариантов ответов в опросе
Для успешной отправки опроса количество вариантов ответа должно быть не менее 2 и не более 12.
Отправка сообщения в личный чат:
{
"chatId": "11001234567@c.us",
"message": "Please choose the color:",
"options": [
{
"optionName": "green"
},
{
"optionName": "red"
},
{
"optionName": "blue"
}
],
"multipleAnswers": false
}
Ответ#
Поля ответа#
Поле | Тип | Описание |
---|---|---|
idMessage | string | Идентификатор отправленного сообщения |
Пример тела ответа#
{
"idMessage": "3EB0C767D097B7C7C030"
}
Пример отображения у получателя#
Ошибки SendPoll#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
Код HTTP | Идентификатор ошибки | Описание |
---|---|---|
400 | Bad Request Validation failed | Ошибка валидации |
400 | Validation failed. Details: 'message' length must be less than or equal to 255 characters long | Длина сообщения должна быть меньше или равна 255 символам |
400 | Validation failed. Details: 'optionName' length must be less than or equal to 100 characters long | Длина варианта ответа должна быть меньше или равна 100 символам |
400 | Validation failed. Details: 'options[X].optionName' is required | Некорректный ключ для варианта ответа Х |
400 | Validation failed. Details: 'options' length must be from 2 to 12 elements inclusive | Некорректное количество вариантов ответа |
400 | Validation failed. Details: 'optionName' field must have unique value | Варианты ответа не должны повторяться |
500 | request entity too large | Превышение допустимой длины json (>100кб) |
Отправка с неверным идентификатором цитируемого сообщения
В случае некорректного указания quotedMessageId
, система вернёт код 200 и id отправляемого сообщения, но оно не будет доставлено получателю.
Примеры кода#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/sendPoll/{{apiTokenInstance}}"
payload = {
"chatId": "11001234567@c.us",
"message": "Please choose the color:",
"options": [
{"optionName": "green"},
{"optionName": "red"},
{"optionName": "blue"}
],
"multipleAnswers": True
}
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, json=payload, headers=headers)
print(response.text.encode('utf8'))
curl --location --request POST '{{apiUrl}}/waInstance{{idInstance}}/sendPoll/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"chatId": "11001234567@c.us",
"message": "Please choose the color:",
"options": [{"optionName": "green"}, {"optionName": "red"}, {"optionName": "blue"}]
}'
Sub SendPoll()
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}}/sendPoll/{{apiTokenInstance}}"
' chatId - chat identifier, message - message text, options - array of data about choice options, multipleAnswers - allow multiple answers. true - enabled, false - disabled, Default: false
RequestBody = "{""chatId"":""71234567890@c.us"",""message"":""Please choose the color:"",""options"":[{""optionName"":""green""},{""optionName"":""red""},{""optionName"":""blue""}],""multipleAnswers"":false}"
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