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

SendPoll#

Test Postman

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

Сообщение добавляется в очередь на отправку.
Скорость отправки сообщений из очереди устанавливает интервал отправки сообщений.

Запрос#

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

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