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

SendPoll#

Test Postman

Метод предназначен для отправки сообщения с опросом в личный или групповой чат. Сообщение будет добавлено в очередь на отправку. Сообщение на отправку хранится 24 часа в очереди и будет отправлено сразу же после авторизации телефона. Скорость отправки сообщений из очереди регулирует параметр интервал отправки сообщений.

Для получения уведомлений с входящими ответами на отправленные опросы необходимо включить настройки инстанса одним из представленных вариантов:

  1. Через личный кабинет включить настройки Получать уведомления о входящих сообщениях и файлах и Получать уведомления об опросах
  2. Через метод SetSettings включить настройки incomingWebhook и pollMessageWebhook

Запрос#

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

POST
{{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

Цитирование сообщений

Чтобы процитировать входящие сообщения, включите настройку Получать уведомления о входящих сообщениях и файлах.
Чтобы процитировать исходящие сообщения, включите настройки Получать уведомления о сообщениях, отправленных с телефона и Получать уведомления о сообщениях, отправленных с API методом SetSettings или через личный кабинет.

Поля массива 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