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

SetSettings#

Метод предназначен для установки настроек аккаунта.

При вызове данного метода аккаунт перезапускается.

Настройки применяются в течение 5 минут после вызова метода setSettings.

После создания инстанса все настройки по умолчанию выключены.

Запрос#

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

POST {{APIUrl}}/waInstance{{idInstance}}/setSettings/{{apiTokenInstance}}

Для получения параметров запроса APIUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.

Параметры запроса#

Допускается указывать параметры выборочно. Хотя бы один параметр должен быть указан.

Параметр Тип Обязательный Описание
webhookUrl string Нет URL для отправки уведомлений. Если требуется отключить получение уведомлений, то укажите пустую строку. При получении уведомлений технологией HTTP API, поле должно быть пустым. Описание работы поля
webhookUrlToken string Нет Токен для доступа к вашему серверу уведомлений, если не требуется, то укажите пустую строку. Описание работы поля.
delaySendMessagesMilliseconds integer Нет Интервал отправки сообщений в миллисекундах. Минимальное значение 500 мсек.
Максимальное значение 86400000 мсек
markIncomingMessagesReaded string Нет Отмечать входящие сообщения прочитанными или нет, возможные значения: yes, no. Игнорируется, если markIncomingMessagesReadedOnReply в значении 'yes'.
markIncomingMessagesReadedOnReply string Нет Отмечать входящие сообщения прочитанными при отправке сообщения в чат через API, возможные значения: yes, no. Если в значении 'yes', то настройка markIncomingMessagesReaded игнорируется.
sharedSession string Нет Не используется
countryInstance string Нет Не используется
outgoingWebhook string Нет Получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений, возможные значения: yes, no. Статусы noAccount и failed отключить невозможно, необходимо обязательно реализовать обработку данного уведомления.
outgoingMessageWebhook string Нет Получать уведомления о сообщениях, отправленных с телефона, возможные значения: yes, no
outgoingAPIMessageWebhook string Нет Получать уведомления о сообщениях, отправленных через API, возможные значения: yes, no. При отправке сообщения на несуществующий аккаунт WhatsApp, уведомление не придет.
stateWebhook string Нет Получать уведомления об изменении состояния авторизации аккаунта, возможные значения: yes, no
incomingWebhook string Нет Получать уведомления о входящих сообщениях и файлах, возможные значения: yes, no
deviceWebhook string Нет Получать уведомления об устройстве (телефоне) и уровне заряда батареи, возможные значения: yes, no
statusInstanceWebhook string Нет Не используется
enableMessagesHistory string Нет Не используется
keepOnlineStatus string Нет Выставляет статус 'В сети' для вашего аккаунта
pollMessageWebhook string Нет Получать уведомления о создании опроса и голосовании в опросе, возможные значения: yes, no
incomingBlockWebhook string Нет Уведомление временно не работает. Получать уведомления о добавлении чата в список заблокированных контактов, возможные значения: yes, no
incomingCallWebhook string Нет Получать уведомления о статусах входящего звонка, возможные значения: yes, no

Применение настроек

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

  • outgoingMessageWebhook
  • outgoingWebhook

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

  • incomingCallWebhook
  • incomingWebhook

Настройка pollMessageWebhook активируется только при включеннии следующих параметров:

  • outgoingAPIMessageWebhook для сообщений, отправленных через API
  • outgoingMessageWebhook для сообщений, отправленных с телефона
  • incomingWebhook для входящих сообщений

Если телефон и связанные устройства выключены, требуется включить настройку:

  • keepOnlineStatus, чтобы выставлят статус В сети для вашего аккаунта и отправлять статус сообщения delivered

Пример тела запроса общий#

{
    "webhookUrl": "https://mysite.com/webhook/green-api/",
    "webhookUrlToken": "",
    "delaySendMessagesMilliseconds": 5000,
    "markIncomingMessagesReaded": "no",
    "markIncomingMessagesReadedOnReply": "no",
    "outgoingWebhook": "yes",
    "outgoingMessageWebhook": "yes",
    "outgoingAPIMessageWebhook": "yes",
    "incomingWebhook": "yes",
    "deviceWebhook": "no",
    "stateWebhook": "yes",
    "keepOnlineStatus": "no",
    "pollMessageWebhook": "no",
    "incomingBlockWebhook": "yes", // Уведомление временно не работает
    "incomingCallWebhook": "yes"
}

Ответ#

Поля ответа#

Поле Тип Описание
saveSettings boolean Флаг, что настройки сохранены

Пример тела ответа#

{
    "saveSettings": true
}

Ошибки SetSettings#

Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки

Примеры кода#

import requests

url = "{{APIUrl}}/waInstance{{idInstance}}/setSettings/{{apiTokenInstance}}"

payload = "{\r\n\t\"webhookUrl\": \"https://mysite.ru\",\r\n\t\"delaySendMessagesMilliseconds\": 1000,\r\n\t\"markIncomingMessagesReaded\": \"no\",\r\n\t\"outgoingWebhook\": \"yes\",\r\n\t\"stateWebhook\": \"yes\",\r\n\t\"incomingWebhook\": \"yes\",\r\n\t\"deviceWebhook\": \"no\"\r\n}"
headers = {
    'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text.encode('utf8'))
curl --location '{{APIUrl}}/waInstance{{idInstance}}/setSettings/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data '{
    "delaySendMessagesMilliseconds": 15000
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append("https://api.greenapi.com")
    .append("/waInstance").append({{idInstance}})
    .append("/setSettings/")
    .append({{apiTokenInstance}});

var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

var jsonBody = "{\"delaySendMessagesMilliseconds\": 15000}";

var requestEntity = new HttpEntity<>(jsonBody, headers);

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append("https://api.greenapi.com")
    .append("/waInstance").append({{idInstance}})
    .append("/setSettings/")
    .append({{apiTokenInstance}});

var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body("{\"delaySendMessagesMilliseconds\": 15000}")
    .asString();

System.out.println(response);
Sub SetSettings()
    Dim url As String
    Dim RequestBody As String
    Dim http As Object
    Dim response As String

    ' The idInstance and apiTokenInstance values are available in your account, double brackets must be removed
    url = "{{APIUrl}}/waInstance{{idInstance}}/SetSettings/{{apiTokenInstance}}"

    ' parameters obtained by the GetSettings method that need to be changed
    RequestBody = "{""webhookUrl"":"""",""delaySendMessagesMilliseconds"":""1000"",""markIncomingMessagesReaded"":""yes"",""outgoingWebhook"":""yes"",""stateWebhook"":""yes"",""incomingWebhook"":""yes"",""incomingBlockWebhook"":""yes""}"

    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