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

SetAccountSettings#

Test

Метод предназначен для установки имени, фамилии и описания («О себе») профиля аккаунта.

Для метода используются ограничения на частоту запросов в секунду.

Запрос#

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

POST
{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}

Префикс v3 стал необязательным параметром запроса

Для вашего удобства унифицировали формат запросов методов API для всех мессенджеров.
Подробнее о правилах вызова методов читайте в статье Выполнение запросов.

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

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

Параметр Тип Обязательный Описание
firstName string Нет Имя профиля (до 59 символов). Пустым быть не может
lastName string Нет Фамилия профиля (до 59 символов). Пустая строка стирает фамилию
description string Нет О себе - описание профиля (до 400 символов). Пустая строка стирает описание

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

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

{
    "firstName": "Имя",
    "lastName": "Фамилия",
    "description": "описание профиля"
}

Ответ#

Поля ответа#

Поле Тип Описание
setAccountSettings boolean Флаг, что настройки сохранены. Отсутствует в ответе тела с ошибкой.
message string Описание ошибки, если метод выполнен с ошибкой. Отсутствует в ответе тела без ошибки.

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

{
    "setAccountSettings": true
}

Выполнение метода с ошибкой#

status code 400 Bad request

{
    "message": "'firstName' contains invalid characters"
}

Ошибки SetAccountSettings#

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

Код HTTP Идентификатор ошибки Описание
400 Bad Request
Validation failed
Ошибка валидации
400 Validation failed.
Details: at least one of 'firstName', 'lastName', 'description' is required
Передано пустое тело запроса
400 Validation failed.
Details: 'firstName' is not allowed to be empty
Имя не может быть пустой строкой
400 Validation failed.
Details: 'firstName' length must be less than or equal to 59 characters long
Превышена длина имени, фамилии (59 символов) или описания (400 символов)
400 Bad Request
'firstName' contains invalid characters
'lastName' contains invalid characters
Недопустимые символы в имени или фамилии — значение отклонено сервером MAX
400 Bad Request
'firstName' is not allowed
'lastName' is not allowed
Имя или фамилия запрещены сервером MAX
400 Bad Request
Name is changed too often, try again later
Слишком частая смена имени — ограничение сервера MAX, повторите попытку позже

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

import requests

url = "{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}"

payload = {
    "firstName": "Имя",
    "lastName": "Фамилия",
    "description": "описание профиля"
}
headers = {
'Content-Type': 'application/json'
}

response = requests.post(url, json=payload, headers=headers)

print(response.text.encode('utf8'))
<?php
//The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
$url = '{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}';

$data = array(
    'firstName' => 'Имя',
    'lastName' => 'Фамилия',
    'description' => 'описание профиля'
);

$options = array(
    'http' => array(
        'header' => "Content-Type: application/json\r\n",
        'method' => 'POST',
        'content' => json_encode($data)
    )
);

$context = stream_context_create($options);

$response = file_get_contents($url, false, $context);

echo $response;
?>
curl --location '{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "firstName": "Имя",
    "lastName": "Фамилия",
    "description": "описание профиля"
}'
var requestBody = new JSONObject();
requestBody.put("firstName", "Имя");
requestBody.put("lastName", "Фамилия");
requestBody.put("description", "описание профиля");

var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/setAccountSettings/")
    .append({{apiTokenInstance}});

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

var requestEntity = new HttpEntity<>(requestBody.toString(), headers);

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestBody = new JSONObject();
requestBody.put("firstName", "Имя");
requestBody.put("lastName", "Фамилия");
requestBody.put("description", "описание профиля");

var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/setAccountSettings/")
    .append({{apiTokenInstance}});

var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body(requestBody)
    .asString();

System.out.println(response);
Sub SetAccountSettings()
Dim URL As String
Dim RequestBody As String
Dim http As Object

' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
URL = "{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}"

RequestBody = "{""firstName"":""Имя"",""lastName"":""Фамилия"",""description"":""описание профиля""}"

Set http = CreateObject("MSXML2.XMLHTTP")

With http
    .Open "POST", URL, False
    .setRequestHeader "Content-Type", "application/json"
    .send RequestBody
End With

Set http = Nothing

End Sub
program setAccountSettings;

{$APPTYPE CONSOLE}

uses
System.SysUtils,
System.Classes, System.Net.HttpClient, System.Net.URLClient, System.Net.HttpClientComponent;

var
HttpClient: TNetHTTPClient;
RequestBody: TStringStream;
RequestHeaders: TNetHeaders;
Response: IHTTPResponse;
EndpointURL, ID_INSTANCE, API_TOKEN_INSTANCE: string;

begin
ID_INSTANCE := '110100001';
API_TOKEN_INSTANCE := 'd75b3a66374942c5b3c019c698abc2067e151558acbd451234';

EndpointURL := 'https://api.green-api.com/waInstance' + ID_INSTANCE + '/setAccountSettings/' + API_TOKEN_INSTANCE;

HttpClient := TNetHTTPClient.Create(nil);
RequestBody := TStringStream.Create('{ "firstName": "Имя", "lastName": "Фамилия", "description": "описание профиля"}', TEncoding.UTF8);
RequestHeaders := [
    TNetHeader.Create('Content-Type', 'application/json')
];

try
    Response := HTTPClient.Post(EndpointURL, RequestBody, nil, RequestHeaders);

    if Response.StatusCode = 200 then
    Writeln('[Response]: ' + Response.ContentAsString)
    else
    Writeln('[ERROR ' + IntToStr(Response.StatusCode) + ']:' + Response.StatusText + '' + Response.ContentAsString);

    readln;
except
    on E: Exception do
    Writeln(E.ClassName, ': ', E.Message);
end;

HttpClient.Free;
RequestBody.Free;

end.