SendPoll#
Метод предназначен для отправки сообщения с опросом в групповой чат.
Сообщение добавляется в очередь на отправку.
Скорость отправки сообщений из очереди устанавливает интервал отправки сообщений.
Запрос#
Для отправки требуется выполнить запрос по адресу:
POST
{{apiUrl}}/waInstance{{idInstance}}/sendPoll/{{apiTokenInstance}}
Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
chatId | string | Да | Идентификатор чата |
message | string | Да | Текст вопроса опроса. Длина от 1 до 255 символов. Поддерживаются символы emoji 😃 |
options | array | Да | Массив строк с вариантами ответов (от 2 до 12 вариантов). |
type | string | Нет | Тип опроса. Доступные значения: - regular (обычный опрос), - quiz (викторина).По умолчанию regular |
multipleAnswers | boolean | Нет | Разрешить выбор нескольких вариантов ответа, true/ false. Актуально только для типа regular, умолчанию: false |
isAnonymous | boolean | Нет | Если true, то список проголосовавших скрыт. По умолчанию: true. Неанонимные опросы нельзя отправлять в каналы. |
correctOptionId | integer | Нет | Индекс правильного ответа (начиная с 0). Используется для опросов типа quiz |
quotedMessageId | string | Нет | Идентификатор цитируемого сообщения |
typingTime | integer | Нет | Время показа уведомления набора сообщения в чате собеседника. Принимает значение в диапазоне от 1000 до 20000 миллисекунд (от 1 до 20 секунд) |
typingType | string | Нет | Тип набора сообщения. Возможные значения: |
text - "печатает..." (по умолчанию) | |||
record_voice_note - "записывает голосовое..." | |||
upload_voice_note - "отправляет голосовое..." | |||
record_video_note - "записывает видео-сообщение..". | |||
upload_video_note - "отправляет видео-сообщение..." | |||
record_video - "записывает видео..." | |||
upload_video - "отправляет видео..." | |||
upload_photo - "отправляет фото..." | |||
upload_document - "отправляет файл..." | |||
choose_sticker - "выбирает стикер..." | |||
choose_location - "выбирает локацию..." | |||
choose_contact - "выбирает контакт..." |
Поля массива options
| Параметр | Тип | Описание |
|---|---|---|
optionName | string | Текст варианта выбора каждого варианта от 1 до 100 символов. Варианты должны отличаться друг от друга. |
Пример тела запроса#
Отправка сообщения в групповой чат#
{
"chatId": "-12345678909876",
"message": "Please choose the color:",
"options": [
{ "optionName": "green" },
{ "optionName": "red" },
{ "optionName": "blue" }
],
"multipleAnswers": false
}
Отправка викторины в групповой чат#
{
"chatId": "-12345678909876",
"message": "Какая планета самая большая в Солнечной системе?",
"options": [
{ "optionName": "Марс" }, // optionId = 0
{ "optionName": "Венера" }, // optionId = 1
{ "optionName": "Юпитер" }, // optionId = 2
{ "optionName": "Сатурн" } // optionId = 3
],
"type": "quiz",
"correctOptionId": 2,
"isAnonymous": false
}
Отправка сообщения с цитированием#
{
"chatId": "-12345678909876",
"message": "Please choose the color:",
"options": [
{ "optionName": "green" },
{ "optionName": "red" },
{ "optionName": "blue" }
],
"multipleAnswers": false,
"quotedMessageId": "1769676078000"
}
Ответ#
Поля ответа#
| Поле | Тип | Описание |
|---|---|---|
idMessage | string | Идентификатор отправленного сообщения |
Пример тела ответа#
{
"idMessage": "1769676078000"
}
Ошибки#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
| Код 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' length must be from 2 to 12 elements inclusive | Некорректное количество вариантов ответа |
| 400 | Validation failed. Details: 'optionName' field must have unique value | Варианты ответа не должны повторяться |
| 400 | Validation failed. Details: Polls can only be sent to groups or channels, not private chats | Отправка опросов возможна только в групповые чаты |
Примеры кода#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/sendPoll/{{apiTokenInstance}}"
payload = {
"chatId": "-12345678909876ы",
"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": "-12345678909876",
"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"":""-12345678909876"",""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