SendPoll#
Метод предназначен для отправки сообщения с опросом в групповой чат.
Сообщение добавляется в очередь на отправку.
Скорость отправки сообщений из очереди устанавливает интервал отправки сообщений.
Запрос#
Для отправки требуется выполнить запрос по адресу:
POST
{{apiUrl}}/waInstance{{idInstance}}/sendPoll/{{apiTokenInstance}}
Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
chatId | string | Да | Идентификатор чата |
message | string | Да | Текст вопроса опроса. Длина от 1 до 255 символов. Поддерживаются символы emoji 😃 |
options | array | Да | Массив строк с вариантами ответов (от 2 до 10 вариантов). |
type | string | Нет | Тип опроса. Доступные значения: - regular (обычный опрос), - quiz (викторина).По умолчанию regular |
multipleAnswers | boolean | Нет | Разрешить выбор нескольких вариантов ответа, true/ false. Актуально только для типа regular, умолчанию: false |
isAnonymous | boolean | Нет | Если true, то список проголосовавших скрыт. По умолчанию: true. Неанонимные опросы нельзя отправлять в каналы. |
correctOptionId | integer | Нет | Индекс правильного ответа (начиная с 0). Используется для опросов типа quiz |
Поля массива 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
}
Ответ#
Поля ответа#
| Поле | Тип | Описание |
|---|---|---|
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 10 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